private int scanner = Convert.ToInt32(Console.ReadLine());
public void Play()
{
while (true)
{
if (scanner > theNumber)
{
Console.WriteLine("your number is too big");
} else
if (scanner < theNumber)
{
Console.WriteLine("your number is too big");
} else
{
Console.WriteLine("you got it");
break;
}
}
}
это простая игра, в которой мне нужно перебрать одно и то же число через набор утверждений if
. в Java они используют
int x;
x = scn.nextInt();
Что я могу использовать в С#? Сканер отсутствует.
С# эквивалентно функции scn.nextInt() в Java. в этом посте не объясняется, как сделать сканер на C#. Он только объясняет, как анализировать ввод пользователя, чтобы сделать его только целым числом.
🤔 А знаете ли вы, что...
Java обеспечивает безопасность с помощью механизма байт-код верификации.
Давайте извлечь метод (ReadInteger
) для этого. Обратите внимание, что мы используем int.TryParse
вместо Convert.ToInt32
, поскольку ввод данных пользователем не требуется, а действительное целое число
private static int ReadInteger(String title = null)
{
if (!string.IsNullOrWhiteSpace(title))
Console.WriteLine(title);
while (true)
{
if (int.TryParse(Console.ReadLine(), out int result))
return result;
Console.WriteLine("Sorry, the input is not a valid integer, try again");
}
}
Тогда мы можем использовать его:
public void Play()
{
while (true)
{
// We should re-read value after each attempt
int value = ReadInteger();
if (value > theNumber)
{
Console.WriteLine("your number is too big");
}
else if (value < theNumber)
{
Console.WriteLine("your number is too big");
}
else
{
Console.WriteLine("you got it");
break;
}
}
}