用于具有特殊条件的循环

时间:2018-04-24 06:58:39

标签: java for-loop syntax

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;
} 

有人可以解释循环条件吗?对我来说这看起来很新鲜。谢谢

2 个答案:

答案 0 :(得分:1)

这是一个增强的声明。短版本 - JobJob 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