2011-11-25 182 views
-2
public class Funny { 
/** 
* @param args 
*/ 
public static void main(String[] args) { 
    // TODO Auto-generated method stub} 
    int n=5; 
    if (n==5);{ 
    System.out.println("welcome"); 
    } 
    else if (n<5);{ 
     System.out.println("world"); 
    } 
} 
} 
} 

Else子句(在if語句)不執行

Description Resource Path Location Type 
Syntax error on token "else", delete this token Funny.java /Hello Woood/src line 15 Java Problem 
+2

如果答案有幫助,請單擊複選標記以接受它。這告訴別人這個問題已經回答了。 – Almo

回答

3

你有分號。

你想

if(n==5) { 
    code(); 
} 
1

獲得if語句條件和大括號之間擺脫;的。

+0

非常感謝! – mike

0

您應該刪除;在else和else之後。如果你只刪除;在if語句之後,你的代碼將執行System.out.println(「world」);

2

基本上正在發生的事情是,

if (n==5); 

被解釋爲對自己的聲明。類似於「是n等於5?如果是,然後很酷,不管」

下一條語句現在與if沒有任何關係。它是一個匿名塊按原樣執行:

{ 
    System.out.println("welcome"); 
} 

的「別人」的語句現在是沒有意義的Java作爲沒有if語句,將其鏈接到後(第一個完成因)。因此,語法錯誤。

另一個經常被忽視的陷阱;是:

while (n==5); { 
    System.out.println("n is still 5, let's make it more..."); 
    n++; 
} 

在這個例子中,你要麼得到一個無限循環(n爲5,永遠不會改變),或者你會得到的打印輸出「仍然是n 5 ...」(,即便N在這一點上不是5)。然後它會增加。非常混亂,所有這一切都因爲一個;將塊與while循環分開。正如大家在我之前所說...,刪除;。

希望這有助於...... :-)