Java - 将else语句放入循环中

时间:2017-03-20 05:25:49

标签: java loops if-statement for-loop

如果找不到我输入的数据,我想处理它。但是,当找不到数据时,程序将重复打印消息。我应该在哪里正确地使用else语句?

public void Data(String x){
    for (int i = 1; i < 6; i++) {
        if (x.equalsIgnoreCase(table1[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table1[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table2[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table2[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table3[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table3[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table4[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table4[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table5[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table5[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table6[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table6[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table7[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table7[i][j]);
            }
        }
        else System.out.println("Data not found!");
    }
}

2 个答案:

答案 0 :(得分:1)

试试这个:

public void Data(String x){
    boolean b = false;
    for (int i = 1; i < 6; i++) {
        if (x.equalsIgnoreCase(table1[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table1[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table2[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table2[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table3[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table3[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table4[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table4[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table5[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table5[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table6[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table6[i][j]);
            }
        }
        else if (x.equalsIgnoreCase(table7[i][1])){
            for (int j = 0; j < 4; j++) {
                System.out.printf("|%-40s", table7[i][j]);
            }
        }
        else b = true;
    }
    if (b) System.out.println("Data not found!");
}

答案 1 :(得分:1)

如果您想在找不到数据后立即终止,可以将您的else语句更改为:

else {
    System.out.println("Data not found!");
    return;
}