我想用NETBEANS 7.1.2做一些Java编码,但是当我尝试构建这段代码时,它给出了错误“'else'而不是'if'”:
private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String search1;
search1 = jTextField1.getText();
// stone
if (search1=="Stone" || search1=="Rock" || search1=="stone" || search1=="rock" || search1=="1");
{
jTextField2.setText("Stone: 1");
}
// grass
else if (search1=="Grass" || search1=="grass");
{
jTextField2.setText("Grass: 2");
}
}
问题出现在//草下的'else if'处。我做错了吗?
答案 0 :(得分:11)
在这一行:
if (search1=="Stone" || search1=="Rock" || search1=="stone" || search1=="rock" || search1=="1");
这一行:
else if (search1=="Grass" || search1=="grass");
您必须在结尾删除;
。这些分号是错误的,编译器会将第一个if
语句解释为没有正文的if
,{}
作为块作用域和else if
语句之间的代码没有else
的{{1}}。
另外,请注意所有字符串比较都是错误的,在Java中,您必须使用if
来比较相等的两个字符串,而不是{{1比较身份。
答案 1 :(得分:2)
你有一个“;”在第一个条件之后。
编译器假设这是if语句的结尾,因此编译器在“else if”行显示错误。 除掉 ”;”它应该没问题!
答案 2 :(得分:0)
我有同样的问题,就像你拥有的一样。 我发现这是解决方案,它对我来说很好。我想这就是你需要的。
String unit=jTextField1.getText();
if(unit.equals("kg") || unit.equals("gm")){
// some code
}
else if(unit.equals("dzn")||unit.equals("qty")){
// some code
}