这里的第一个问题,所以请不要粗鲁......
无论如何,我最近发现了if / else if的问题。显示下面写的代码。问题是,如果肠胃外给药只能使用一次,我的其他问题。当我写了一个与寄存器中的那个相匹配的单词时,如果不再有效的话。是代码中的任何错误还是netbeans会让我烦恼?非常感谢我能得到的任何帮助。 希望你能理解语法,即使它是用瑞典语写的......
private void årsök_txfActionPerformed(java.awt.event.ActionEvent evt) {
try {
int söktår = Integer.valueOf(årsök_txf.getText());
info_txa.setText("");
for (Register register1 : register) {
int finns = register1.getAr();
if (finns==söktår) {
info_txa.append(register1 + "");
hittad = true;
} else if (hittad==false) {
info_txa.setText("Tyvärr så utgavs det inga filmer "+söktår);
}
}
} catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Vänligen mata in ett tal som sökt utgivningsår!");
}
}
答案 0 :(得分:2)
问题不是很清楚。但这绝对是一个编码错误,与Netbeans无关。这就是我的理解,请确认这是不是这个意思:
一旦Register包含与söktår
匹配的单词,则在else-if
块未执行之后。
else if
未执行的原因是,只有在hittad
为false时才会执行,并且一旦找到匹配项,就会将hittad
设置为true,因此它之后永远不会进入else-if
区块。
答案 1 :(得分:1)
问题出在你的if块中,你已经指定了'hittad = true',但还没有重置它,因为你的其他条件有'hittad == false',这将永远不再为真,所以否则如果阻止执行if block代码后永远不会执行。 希望它对你有所帮助。
答案 2 :(得分:0)
如果我从你的评论中理解你想要完成什么,那么也许循环可以大大简化(仅显示一般的示例结构):
Boolean found = false;
for(obj : objects)
if (obj.equals(searchCriteria)) {
found = true;
break;
}
if (!found)
system.out.println("object not found.");