2015-09-02 50 views
-1

當我嘗試編譯此代碼時,收到此錯誤消息,但我不確定爲什麼,因爲如果我繼續執行其他操作。任何幫助表示讚賞:Leapyear的Java代碼錯誤

error: 'else' without 'if' 

這是我的代碼:

import java.util.Scanner; 
public class LeapYear 
{ 
    public static void main (String[] args) 
    { 
     int year; 
     Scanner sc = new Scanner(System.in); 
     System.out.print("Enter a year:\n[1582] "); 
     year= sc.nextInt(); 

     if (year < 1582); 
      System.out.print("Error! \"Calender starts from 1582\"."); 
     else 
     { 
      if ((year%4==0 || year%400==0) && (year>1999 || year% 100!=0)) 
       System.out.println ("A leap year."); 
      else 
       System.out.println("Not a leap year. "); 
     } 
    } 
} 
+0

如果(年< 1582); ->如果(年<1582年) 你終止,如果用空聲明通過使用分號,所以下面的其他人不會找到有效的'if'語句。 –

回答

1

你有一個 ';'在if行的末尾。您的代碼應該是:

if (year < 1582) 
    System.out.print("Error! \"Calender starts from 1582\"."); 
else 
{ 
    .... 

或更好:

if (year < 1582) 
{ 
    System.out.print("Error! \"Calender starts from 1582\"."); 
} 
else 
{ 
    ... 
2

你有一個空的身體你if。分號可以(並且在這種情況下)表示空語句。

TL;博士

變化

if (year < 1582); 

刪除分號

if (year < 1582)