2016-10-14 3 views
-1

я получаю ошибку CS1513 на следующий код в визуальных студий писать в C#CS1513 ошибка} ожидается

{ 
    class NotChineseZodiac 
    { 
     static void Main(string[] args) 
     { 

      String YearBorn; 
      int YearBornInt; 
      Console.WriteLine("What was the year of your birth?"); 
      YearBorn = Console.ReadLine(); 
      YearBornInt = Convert.ToInt32(YearBorn); 


      Console.WriteLine("You are" + (DateTime.Now.Year - YearBornInt)); 

      if ((DateTime.Now.Year - YearBornInt) < 18); 
      Console.WriteLine("You Shall Not PASS"); 

      else 
       Console.WriteLine("Please Proceed"); 

      Console.ReadLine(); // last enter key 

Кто-нибудь увидеть мою ошибку ??

+0

пространство не допускается между ними, если еще. –

+3

yes..remow конец точки с запятой здесь 'if ((DateTime.Now.Year - YearBornInt) <18);' – Pikoh

+0

@ m.kudi Вы можете иметь пустые строки или прокомментированные строки между 'if' и' else', но у вас не может быть более одного кодового блока между ними, что здесь и есть. – juharr

ответ

5

вы прекратили эту строку точкой с запятой:

if ((DateTime.Now.Year - YearBornInt) < 18); 

правильно было бы:

if ((DateTime.Now.Year - YearBornInt) < 18) 
     Console.WriteLine("You Shall Not PASS"); 
else 
     Console.WriteLine("Please Proceed"); 

или для лучшей читаемости

if ((DateTime.Now.Year - YearBornInt) < 18) 
{ 
    Console.WriteLine("You Shall Not PASS"); 
} 
else 
{ 
    Console.WriteLine("Please Proceed"); 
} 
+0

Я не согласен с тем, что добавление фигурных скобок для операторов if и else добавляет читаемость для одного оператора строки. – user1666620

+2

Вы можете не согласиться. Для меня он четко показывает, что принадлежит if/else и избегает ненужных ошибок. Это зависит от вас или вашей компании, чтобы обрабатывать ее по-разному. – Dawnkeeper

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