Java ';如果';“给出错误”';其他';没有';如果'&引用;在爪哇
我正试图使用NETBEANS 7.1.2进行一些Java编码,但当我尝试构建此代码时,会出现错误“'else'而不带'if'”:Java ';如果';“给出错误”';其他';没有';如果'&引用;在爪哇,java,netbeans,if-statement,Java,Netbeans,If Statement,我正试图使用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
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”处。我做错什么了吗?在第一个条件之后,您有一个“;”
编译器假定这是if语句的结尾,因此编译器在“else if”行显示错误。
去掉“;”就可以了 在这一行中:
if (search1=="Stone" || search1=="Rock" || search1=="stone" || search1=="rock" || search1=="1");
else if (search1=="Grass" || search1=="grass");
这一行:
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()
来比较两个字符串的相等性,而不是=
,它比较标识我和你一样有同样的问题。
我发现这是一个解决方案,对我来说效果很好。我想这就是你需要的
String unit=jTextField1.getText();
if(unit.equals("kg") || unit.equals("gm")){
// some code
}
else if(unit.equals("dzn")||unit.equals("qty")){
// some code
}
谢谢这就解决了问题。stackoverflow的另一个令人惊奇且有用的社区示例!