在下面的代码中,我想让用户在搜索框中输入可用的学生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!!!");
}
}
}
答案 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!!!");
}
}