数组列表计数给用户

时间:2013-09-18 22:36:17

标签: java loops arraylist

我写了一个做不同事情的课程。我试图用一个循环来计算数组列表中的用户数。基本上,班级正在获取信息并添加有关学生的信息。输入的其中一项是学生参加的学分数量。假设我在我的阵列列表中输入了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; 

4 个答案:

答案 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);