编辑:
这是一个非常粗略的草案,但我还没弄明白如何询问用户如何摆脱这些循环,因为如果我将MAX_ON_LIST设置回50.它会提示我50次,我只要用户想提示
,只希望它提示另外,我不认为只有当积分大于或等于30且小于90
时,我才解决了如何仅向阵列添加名称和积分的问题。 final int MAX_ON_LIST = 3;
String[] stuName = new String[MAX_ON_LIST];
int[] numCredits = new int[MAX_ON_LIST];
for (int i = 0; i < stuName.length; i++) {
do {
try {
stuName[i] = JOptionPane.showInputDialog("Enter student name:");
}
catch (NumberFormatException e) {
stuName[i] = "";
}
if (stuName[i].equals("")) {
JOptionPane.showMessageDialog(null, "Name cannot be blank");
}
} while (stuName[i].equals(""));
}
JOptionPane.showMessageDialog(null, Arrays.toString(stuName));
for (int i = 0; i < numCredits.length; i++) {
do {
try {
numCredits[i] = Integer.parseInt(JOptionPane.showInputDialog("Enter # of completed credits:"));
}
catch (NumberFormatException e) {
numCredits[i] = -1;
}
if (numCredits[i] < 0) {
JOptionPane.showMessageDialog(null, "# of credits can't be less than 0");
}
} while (numCredits[i] < 0);
}
JOptionPane.showMessageDialog(null, Arrays.toString(numCredits));
我在使用以下规则解决此问题时遇到了一些问题:
我必须创建一份最多50名符合条件的学生的名单。
跟踪学生姓名及其相应的学分数。
只有当一个范围内的学分数被认为是合格的,然后名称和学分将被添加到列表中。
如何在不使用ArrayList的情况下解决这个问题?
我所知道的是列表不能超过50人,但用户可以在人数达到50之前停止将人员添加到列表中。
答案 0 :(得分:1)
这个怎么样?
public void addStudent(Student s) {
if (valid(s) && yourList.size() < 50) {
yourList.add(s);
}
}
public boolean valid(Student s) {
// check your credits
}