我有以下循环,我想只运行一次。 我怎么能这样做?
for (AnnotationData annotations : annotation)
答案 0 :(得分:9)
运行一次的循环不是一个循环。
如果annotations
是数组,请使用annotations[0]
获取第一个数组。如果是List
,请执行annotations.get(0)
。否则,请annotations.iterator().next()
。如果您不确定该集合是否至少包含一个元素,请务必先检查该元素。
这将更加清晰,因为当人们看到for
时,他们通常会期待一个循环。一个实际上,好吧,循环。
答案 1 :(得分:4)
爆发!
for (AnnotationData annotation : annotations) {
// do something with "annotation"
break; // only execute loop body once
}
其他答案是使用计数器或旗帜!?我永远不会惊讶于一些人写了多少代码来做最简单的事情。通常,程序员越差,他们编写的代码就越多。
一些评论者误解,非循环版本会使用“less code”或“less lines”。这样的说法是不真实的......这里是精确的非循环等效代码:
if (!annotations.isEmpty()) {
AnnotationData annotation = annotations.get(0);
// do something with "annotation"
}
这使用相同的行数,但需要23个更多个字符的代码,尽管我授予你的意图更强调。
答案 2 :(得分:2)
不需要任何反击。只需在最后添加break
:
for (AnnotationData annotations : annotation){
//your all code
break;
}
答案 3 :(得分:-1)
int i=0;
for (AnnotationData annotations : annotation){
if(i==1)
{
break;
}
i++;
}