Java for循环计数输出

时间:2018-06-15 15:06:32

标签: java arrays counting

我有一个正常工作的代码,但我的输出并不算数。 这是我正在使用的代码:

for(Course course : courses) {
        for(int i=0;i<1;i++) {
        System.out.println("[" + (i+1) + "]" + course.getCode() + "(" + course.getCreditHour() + ")");
    }

    }
    System.out.print("Enter your choice : "); 

我需要(i + 1)从1到7计数。

以下是我目前获得的输出的副本:

Please type the number inside the [] to register for a course
The number inside the () is the credit hours for the course
[1]IT1006(6)
[1]IT4782(3)
[1]IT4789(3)
[1]IT4079(6)
[1]IT2230(3)
[1]IT3345(3)
[1]IT2249(6)
Enter your choice : 

我需要方括号内的数字从1到7计算。

这是一项学术任务。

2 个答案:

答案 0 :(得分:2)

你的内循环没有做任何事情。如果您将其硬编码为仅运行一次,那么使用循环是没有意义的。

我将摆脱你的外环并直接索引courses

for(int i = 0; i < courses.size(); i++){
    Course course = courses.get(i);
    System.out.println("[" + (i+1) + "]" + course.getCode() + "(" + course.getCreditHour() + ")");
}

答案 1 :(得分:0)

for(课程:课程)意味着:对于每个课程,所以我重新初始化你需要一个在每次迭代时都会递增的变量,所以必须在块之外声明变量。你可以写一些这样的东西:

int i = 1;
for(Course course : courses) {
    System.out.println("[" + (i++) + "]" + course.getCode() + "(" + course.getCreditHour() + ")");
}    
System.out.print("Enter your choice : "); 

@Carcigenicate的方法也可以工作但是如果你使用链接结构作为链表来处理性能问题那么这将成为一个数组:

for (int i = 0 ; i < courses.lenght ; i++){
    System.out.println("[" + i + "]" + courses[i].getCode() + "(" + courses[i].getCreditHour() + ")");
}
System.out.print("Enter your choice : "); 

和集合:

for (int i = 0 ; i < courses.getSize(); i++){
    System.out.println("[" + i + "]" + courses.get(i).getCode() + "(" + courses.get(i).getCreditHour() + ")");
}
System.out.print("Enter your choice : ");