所以我需要帮助。我正在使用循环来检查数组。但是,我需要循环显示仅在检查数组的所有索引之后才找到的名称。我已经尝试了此代码的许多变体。但是,我无法使其正常工作。它要么在检查所有代码之前中断,要么在JOptionPane框内循环20次(这不是我想要的),或者显示正确的结果,然后显示错误消息。这是我的代码:
private static String[]name= new String [20];
public static int i=0;
name[i]= JOptionPane.showInputDialog(null, "Please enter admin's name into the database:");
String search= JOptionPane.showInputDialog(null,"Please enter admin's name to check the database:");
for (int j=0;j<name.length;j++){
if (search.equals(name[j])){
JOptionPane.showMessageDialog(null,"Name : " +name[j]);
break;
else if(!search.equals(name[j])){
JOptionPane.showMessageDialog(null, name[j]+ "was not found");
}
}
答案 0 :(得分:1)
您可以使用flag
标记搜索结果:
boolean found = false;
for (int j = 0; j < name.length; j++) {
if (search.equals(name[j])) {
JOptionPane.showMessageDialog(null, "Name : " + name[j]);
found = true;
break;
}
}
if (!found) {
JOptionPane.showMessageDialog(null, +name[j] + "was not found");
}
答案 1 :(得分:0)
在循环之前使用一个标志,并在所有迭代之后检查它:
boolean found = false;
for (int j=0;j<name.length;j++){
if (search.equals(name[j])){
JOptionPane.showMessageDialog(null,"Name : " +name[j]);
found = true;
break;
}
}
if(!found) {
JOptionPane.showMessageDialog(null, search + " was not found");
}
这样,在检查完所有名称之后,并且只有在没有匹配的情况下,才会显示was not found
消息。