java-你如何做一个循环,继续用if else语句循环

时间:2018-07-29 10:55:49

标签: java arrays

所以我需要帮助。我正在使用循环来检查数组。但是,我需要循环显示仅在检查数组的所有索引之后才找到的名称。我已经尝试了此代码的许多变体。但是,我无法使其正常工作。它要么在检查所有代码之前中断,要么在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");
        }
        }

2 个答案:

答案 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消息。