有没有更好的方法来访问Java中{for}循环中的最后一个元素

时间:2017-12-11 06:40:07

标签: java for-loop coding-efficiency

[编辑帖子更清楚] 下面的代码应该代表一些试运行,并且在每个试验中假设a是需要检查的案例数。

while(testCaseAmt > 0) {
for(int i = 0; i < a; i++) {
   if(some condition)
   //code when i is not the last element
   //then I would like to break/return here.
   if(i = a - 1)
   //code when i is the last element
   //then if the above if statement never runs during the a amt of trials
   //i will print out something else
   }

   testCaseAmt--;
   }

我的问题是,是否有另一种方法可以专门访问for循环中的最后一个元素,以便为其提供特定的指令。我想循环设定试验,如果它们满足第一个条件,我立即停止循环并返回。但是,如果没有找到条件,我仍然需要打印出未找到的条件。

干杯。

2 个答案:

答案 0 :(得分:2)

对我而言,这似乎与“off-by-one errors”或“fencepost errors”有关,请参阅here

如果在i不是最后一个元素时执行的代码不是太复杂,那么最好先结束for循环一次迭代并编写特定代码for循环之外的最后一个元素。

if循环中添加for语句,你知道它只会在最后一次迭代时才会出现,可能会被视为坏样式。

答案 1 :(得分:1)

您可以在for循环之前定义boolean conditionMet = false并迭代到i < a-1。 如果some condition适用,请执行您的代码,然后设置conditionMet = true并跳出for循环。 在for循环之后,检查是否!conditionMet,在这种情况下,执行最后一个元素的代码。