IF语句在for循环中无法正常运行

时间:2019-10-17 06:50:58

标签: java

在下面的代码中,我想让用户在搜索框中输入可用的学生ID之一,然后,如果学生ID有效,则会出现一个带有可用学生ID的简单消息框。

情况1:。当我在搜索框中输入212时,效果很好。

情况2:当我输入215或219或214(NOT 212)时,它跳到“未找到”消息框,再尝试两次后,我得到一个带有找到的学生ID的消息框。

>

问题,如果我是第一次输入215或219或214,但是为什么我输入212却能正常工作,为什么我没有找到提示框?此for循环或IF语句有什么问题?为什么当我输入215时,它第一次和第二次忽略,然后显示找到消息框?

import javax.swing.*;
static int[] studentID = {212,214,215,219};

public static void main(String[] args) {
    search();

    System.exit(0);

}

public static void search(){
    for(int i = 0;i < studentID.length;i++){
        search = JOptionPane.showInputDialog(null,"Enter a student ID");
        if(studentID[i] == Integer.parseInt(search)){
            JOptionPane.showMessageDialog(null, studentID[i]);
            break;
        }else{
            JOptionPane.showMessageDialog(null,"NOT FOUND!!!");
        }
    }
}

2 个答案:

答案 0 :(得分:1)

循环应在读取输入之后,并且“ NOT FOUND”消息应在循环后:

public static void search(){
    search = JOptionPane.showInputDialog(null,"Enter a student ID");
    for(int i = 0;i < studentID.length;i++){
        if(studentID[i] == Integer.parseInt(search)){
            JOptionPane.showMessageDialog(null, studentID[i]);
            return;
        }
    }
    OptionPane.showMessageDialog(null,"NOT FOUND!!!");
}

如果要执行多次搜索,则应多次调用search()方法。

答案 1 :(得分:-1)

import javax.swing.*;

public class Stackoverflow1 {
    static int[] studentID = {212,214,215,219};

    public static void main(String[] args) {
        search();

        System.exit(0);

    }

    public static void search(){
        String enter_a_student_id = JOptionPane.showInputDialog(null, "Enter a student ID");

        for(int i = 0;i < studentID.length;i++){
            if(studentID[i] == Integer.parseInt(enter_a_student_id)){
                JOptionPane.showMessageDialog(null, studentID[i]);
                System.exit(0);

            }
        }

            JOptionPane.showMessageDialog(null,"NOT FOUND!!!");



    }
}