作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的代码中,我想让用户在搜索框中输入可用的学生 ID 之一,然后如果学生 ID 有效,将出现一个简单的消息框,其中包含可用的学生 ID。
情况 1:当我在搜索框中输入 212 时效果很好。
情况2:当我输入215或219或214(不是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!!!");
}
}
}
最佳答案
循环应该在读取输入之后,并且“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()
方法。
关于java - IF 语句在 for 循环中不能很好地工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58426508/
我是一名优秀的程序员,十分优秀!