public int minCompletionTime() { // finds minCompletionTime
int time = -1;
for(Job j : jobs) {
if (j.getStartTime() == -1) {
return -1;
}
}
for (Job j : jobs) { //Calculate the minimum completion time
if (j.getStartTime() + j.time > time) {
time = j.getStartTime() + j.time;
}
}
return time;
}
有人可以解释循环条件吗?对我来说这看起来很新鲜。谢谢
答案 0 :(得分:1)
这是一个增强的声明。短版本 - Job
是Job j
个对象的集合或数组,循环遍历它并在每次迭代中分配一个新的for (int i = 0; i < jobs.size(); ++i) {
Job j = jobs.get(i);
// Rest of the loop...
。你可以把它想象成类似于这样的语法糖:
{{1}}
您可以在Oracle's tutorial about the for
statement中了解有关此语法的更多信息。
答案 1 :(得分:1)
这些循环是所谓的'for-each'循环。他们的名字恰好反映了他们正在做的事情。它们为集合/数组中的每个元素执行正文中定义的任务。我们来看一个更简单的例子:
int[] test = new int[] { 5, 7, 9, 3, 4, 9 };
for(int i : test)
{
System.out.print( i + " " );
}
这个的输出是:
5 7 9 3 4 9