2016-11-12 45 views
-1

我想要什麼:C#如何讓到Console.ReadLine只能檢測具體的數字

檢測來自用戶的整數,但只有當它是兩個特定數字之間 - 例如,1間4

如何我目前做:

使用Console.ReadLine()得到輸入,不久之後的「if」語句以驗證它確實是我不滿意多少1 4.

之間行t他佔據了。有更緊湊的解決方案嗎? (在學校學習c#,我們最近完成了'for'循環,我想我可以將ReadLine放在一個循環中,這樣它會詢問一個值,直到檢測到的數字低於5並且高於0,但是有沒有更好的方法?)

+0

你應該使用'做... while'循環代替。有關詳細信息:[鏈接](https://msdn.microsoft.com/en-us/library/370s1zax.aspx) –

+4

你能提供你已經嘗試過的代碼嗎?> – Usman

+0

'int answer = 0; do { answer = int.Parse(Console.ReadLine()); } while(answer> = 0 && answer <= 4)' – user1681317

回答

0

A while循環或do-while循環應該做的很好。另請注意,在我的示例中,我引入了int.TryParse,因爲如果用戶填寫其他內容,然後是int,則會引發異常。

Microsoft MSDN Loops Documentation

while循環:

int number = -1; 
while (number <= 0 || number > 4) 
{ 
    var input = Console.ReadLine(); 
    int.TryParse(input, out number); 
} 

Console.WriteLine("Number is {0}", number); 

do-while循環:

int number; 
do 
{ 
    var input = Console.ReadLine(); 
    int.TryParse(input, out number); 

} while (number <= 0 || number > 4); 

Console.WriteLine("Number is {0}", number); 
0
int x = 0; 
Console.Write("Enter a value between 1 and 4"); 
while (!(int.TryParse(Console.ReadLine(), out x) && (x > 0 && x < 5))) 
    Console.Write("Wrong Value, try again: "); 

循環,直到你得到一個有效的int如果你得到有效的int值,那麼x應該是1,2,3,4否則循環運行。

int.TryParse方法是用來檢查一個給定的值是否可以轉換爲int與否,如果轉換返回轉換後的值作爲out PARAM