[编辑帖子更清楚] 下面的代码应该代表一些试运行,并且在每个试验中假设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循环中的最后一个元素,以便为其提供特定的指令。我想循环设定试验,如果它们满足第一个条件,我立即停止循环并返回。但是,如果没有找到条件,我仍然需要打印出未找到的条件。
干杯。
答案 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
,在这种情况下,执行最后一个元素的代码。