我想用 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");
}
}
问题发生在//grass 下的"else if"。我做错了什么吗?
在这一行中:
if (search1=="Stone" || search1=="Rock" || search1=="stone" || search1=="rock" || search1=="1");
还有这一行:
else if (search1=="Grass" || search1=="grass");
您必须在最后删除;
。这些分号放错了地方,编译器会将第一个if
语句解释为没有主体的if
,将{}
之间的代码解释为块作用域,将else if
语句解释为没有if
的else
。
另外,请注意,所有的字符串比较都是错误的,在 Java 中,您必须使用 equals()
来比较两个字符串的相等性,而不是比较标识的 ==
。
第一个条件后有一个";"。
编译器假定这是 if 语句的结尾,因此编译器在"else if"行显示错误。删除";",应该没问题!
我遇到了和你一样的问题。我发现这是解决方案,它对我来说效果很好。我想这就是你需要的。
String unit=jTextField1.getText();
if(unit.equals("kg") || unit.equals("gm")){
// some code
}
else if(unit.equals("dzn")||unit.equals("qty")){
// some code
}