проблема с оператором if и отрицательным целым числом - PullRequest
0 голосов
/ 22 апреля 2019

Действительно новый для C #. Я хочу проверить, является ли целое число (вход от пользователя) положительным, отрицательным или нулевым. Он работает с положительным числом и нулем, но не при вводе отрицательного числа!

Я пытался изменить тип ввода с пользовательского на int, float, decimal, double и так далее, но ничего не работает. Также попробовал switch-Statement. Я использую Visual Studio и отлаживаю в терминале Mac, это может быть проблемой? Я могу использовать отрицательные числа при написании другого кода, такого как математические задачи и т. Д.

Console.Write("Enter a number: ");   
int number = int.Parse(Console.ReadLine());   
if (number == 0)   
{
     Console.Write("zero");
}
else if (number < 0)
{
    Console.Write("negative");
}
else
{       
     Console.Write("positive");

(я также пытался с оператором switch:)

Console.Write("Enter a number: ");
int number = int.Parse(Console.ReadLine());
switch(number)   
{   
     case 0: Console.Write("zero"); break;    
     case -1: Console.Write("negative"); break;    
     case 1: Console.Write("positive"); break;    
}

В обоих случаях я получаю правильный вывод при вводе положительного числа или 0, но при вводе отрицательного числа я получаю сообщение об ошибке: «входная строка была не в правильном формате»

1 Ответ

0 голосов
/ 22 апреля 2019

Это должно работать, потому что int здесь Int32: диапазон от -2 147 483 648 до 2 147 483 647.Если вы вводите любое число в этом диапазоне, оно должно работать.Для числа вне этого диапазона вы получите «значение слишком маленькое или слишком большое».Пожалуйста, поделитесь номером, который вы вводите

...