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
答案 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”);