2016-10-14 123 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