2016-10-14 76 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..remove end end here 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