Else子句(在if语句中)不执行

时间:2011-11-25 19:13:45

标签: java

 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");
    }
}
}
}

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

4 个答案:

答案 0 :(得分:3)

你的if语句后面有分号。

你想要

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

答案 1 :(得分:2)

基本上发生的事情是

if (n==5);

本身被解释为一个陈述。像“n等于5?如果是这样,那么很酷,无论如何”

下一个声明现在与if无关。它是一个匿名块,按原样执行:

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

声明之后的'else'现在对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循环分开。

正如大家在我之前说的那样......,删除;。

希望这有助于......: - )

答案 2 :(得分:1)

摆脱if语句之间的;条件和开放大括号。

答案 3 :(得分:0)

你应该删除;在if语句之后和之后。如果你只删除;在if语句之后,您的代码将执行System.out.println(“world”);