2016-11-12 5 views
-1

Что я хочу:C# как сделать Console.ReadLine обнаруживать только определенные номера

ОБНАРУЖЕНИЯ целого числа от пользователя, но только если он находится между двумя конкретными числами - например, от 1 до 4.

Как я сейчас делаю это:

Использование Console.ReadLine(), чтобы получить вход, в ближайшее время, за которым следует «if» заявление, чтобы убедиться, что это действительно от 1 до 4.

Я не удовлетворен тем, как много линии t его занимает. Есть ли более компактное решение? (Изучая C# в школе, мы недавно закончили петли «for». Предположим, я могу просто вставить ReadLine в цикле, чтобы он запрашивал значение, пока обнаруженное число не окажется ниже 5 и выше 0, но есть лучший способ ?)

+0

Вы должны использовать 'делать ... while' петли вместо этого. Для получения дополнительной информации: [link] (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

во время цикла:

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

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

делать-то время цикла:

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: "); 

Loop, пока вы не получите действительный int и если вы получите действительное значение int, то x должно быть 1,2,3,4 еще запустить в цикле.

int.TryParse метод используется для проверки, является ли конвертируемые в int или нет заданное значение, и если конвертируемым возвращает преобразованное значение, как out парам

Смежные вопросы