>我正在尝试通过让用户输入标识号来访问并行数组的全部内容。该数组似乎只返回前四项的结果 [0-3]。其余部分将返回为未找到。使用 Eclipse,我尝试将数组完全尺寸调整为 10 个内存位置,但是,我遇到了错误。
import java.util.*;
import javax.swing.JOptionPane;
public class StudentIDArray {
static String[] studentNum = new String[]
{"1234", "2345", "3456", "4567", "5678", "6789", "7890", "8901", "9012", "0123"};
static String[] studentName = new String[]
{"Peter", "Brian", "Stewie", "Lois", "Chris", "Meg", "Glen", "Joe", "Cleveland", "Morty"};
static double[] studentGpa = new double[]
{2.0, 3.25, 4.0, 3.6, 2.26, 3.20, 3.45, 3.8, 3.0, 3.33};
public static void main(String[] args) {
String studentId = null;
while ((studentId = JOptionPane.showInputDialog(null, "Please enter your Student ID number to view your name and GPA")) != null) {
boolean correct = false;
for (int x = 0; x < studentId.length(); ++x) {
if (studentId.equals(studentNum[x])) {
JOptionPane.showMessageDialog(null, "Your name is: " + studentName[x] + "n" + "Your GPA: " + studentGpa[x], "GPA Results", JOptionPane.INFORMATION_MESSAGE);
correct = true;
break;
}
}
if (!correct) {
JOptionPane.showMessageDialog(null, "Student ID not found, try again.", "Not found", JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
在 for 循环更改中:
studentId.length();
自
studentNum.length;
您现在使用输入字符串的长度,而您需要数组的长度。
你不应该在 for 循环中迭代 "studenNum" 数组吗?您有一个拼写错误/错误,您正在迭代错误的变量。
请查看您的for
循环:
for (int x = 0; x < studentId.length(); ++x)
您不是使用 studentNum
数组的长度,而是使用用户输入studentId
的长度,该长度很可能为 4 个字符(由于您在 studentNum
中给定了学生 ID)。这就是为什么你的程序只在索引 0 - 3 上找到条目(数组似乎只返回前四项的结果 [0-3])。
将其更改为
for (int x = 0; x < studentNum.length; ++x)
来修复它。