我写了一个做不同事情的课程。我试图用一个循环来计算数组列表中的用户数。基本上,班级正在获取信息并添加有关学生的信息。输入的其中一项是学生参加的学分数量。假设我在我的阵列列表中输入了5名学生。两名学生正在学习5学分,2名学生正在学习6学分,最后一名学生正在学习9学分。我在课堂上创建了一些代码,假设用户想知道阵列中有多少学生正在学习6个学分。所以我创建了一个段,让用户输入该号码,该类将查看数组并返回有多少学生正在使用该数字,但它不起作用。我不知道这是否有意义
System.out.print("Please enter a number of credits:\n");
inputInfo = stdin.readLine().trim();
int credits = Integer.parseInt(inputInfo);
int count = 0;
for (int i = 0; i < studentList.size(); ++i)
{
count++;
}
System.out.println("The number of students who are taking " + credits
+ " credits is: " + count);
break;
答案 0 :(得分:1)
对于每个学生,您必须检查他是否具有您正在寻找的相同数量的学分。
将for
循环替换为:
/* If your list contains an array of Student objects */
for(Student student : studentList) {
if (student.getCredits() == credits) {
count++;
}
}
/* If you don't use objects */
for(int i = 0; i < studentList.size(); i++) {
if(studentList[i].credits == credits) {
count++;
}
}
答案 1 :(得分:1)
你从未真正检查他们是否正在获得正确数量的学分。把它放在你的循环中:
if(studentList[i].credits == credits) {
count++;
}
答案 2 :(得分:0)
您需要检查学生的学分是否符合要求的值。像这样:
for (int i = 0; i < studentList.size(); ++i)
{
if(studentList[i].credits == credits)
count++;
}
答案 3 :(得分:0)
您需要检查某个索引的学生是否具有您正在寻找的学分数。如果它只是递增计数器,否则保持循环遍历列表直到列表的末尾。
System.out.print("Please enter a number of credits:\n");
inputInfo = stdin.readLine().trim();
int ncredits = Integer.parseInt(inputInfo);
int count = 0;
for (int i = 0; i < studentList.size(); i++){
// if the student at this index has ncredits
// then
count++;
}
System.out.println("The number of students who are taking " + credits
+ " credits is: " + count);