OriginalGriff
Я не вижу там этого сообщения - я вижу некоторые предупреждения и некоторые другие ошибки...
if (old < age2) ;
Точка с запятой завершает оператор if, поэтому вы должны получить предупреждение "возможный ошибочный пустой оператор". Уберите точку с запятой.
else;
Вы также получите ошибку "недопустимый термин выражения "else"", потому что точка с запятой завершает if, поэтому else не имеет ничего общего. Избавление от точки с запятой на if удалит эту точку, но также удалит точку с запятой на другом по той же причине.
В результате вы, вероятно, получите и другие сообщения, которые должны исчезнуть.
Пара предложений:
1) Установите "рассматривать предупреждение как ошибки" на "все" на вкладке "сборка" свойств проекта и установите "ошибки и предупреждения" на "уровень предупреждения" " 4 " на той же вкладке. Компилятор будет строже с вами, что поможет вам избавиться от проблем во время компиляции вместо того, чтобы позволять им вызывать много царапин в голове во время выполнения.
2) Конечно, в самом начале всегда используйте фигурные скобки везде, где это возможно: даже если
if
или
else
содержит только одну строку. Это значительно облегчает последующее редактирование без ошибок.
3) Когда вы пытаетесь разобрать число, проверьте возвращаемое значение - если оно возвращает false, то пользователь не ввел действительное число, и вы должны отреагировать на это.
Таким образом, ваш код, вероятно, должен выглядеть следующим образом:
class Class1
{
public static void Main()
{
System.Console.WriteLine("Hello, World! who are you?");
string whois = Console.ReadLine();
Console.WriteLine("Hello {0}, i am a hello world program. what is your age?", whois);
string age = Console.ReadLine();
int age2;
if (!Int32.TryParse(age, out age2))
{
// Bad input
Console.WriteLine("{0} is not a number!", age);
}
else
{
int old = 25;
if (old < age2)
{
Console.WriteLine("{0} years old, Golden years eh?", age2);
}
else
{
Console.WriteLine("{0} years old, Ah, i see. In your prime!", age2);
}
}
}
}