Anj*_*waj 9 java loops continue
我正在浏览关于continue关键字的问题,以便更好地理解它,我在这个答案中偶然发现了这一行
这些可以是维护时间炸弹,因为"继续"/"中断"与循环之间没有直接联系,它继续/打破除上下文之外;
我有这个for循环:
for(Object obj : myArrayList){
if(myArrayList.contains(someParticularData)){
continue;
}
//do something
}
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是 - continue以我上面所做的方式使用它还是有问题吗?如果是,我可以采用的替代方法是什么?任何形式的指导都会有所帮助.谢谢.
更新:我在这种特定情况下的目标是迭代a Collection(ArrayList在这种情况下),并检查是否包含某些特定数据,如果为真,则跳过该迭代.我被指出这myArrayList.contains(someParticularData)是一次性操作,并且最好在循环外执行该检查,这正是我所寻找的.另外,我了解到如果我可以continue根据某些条件使用if(someConditon),我可以通过使用来避免它if(!someCondition).
小智 16
for(Object obj : myArrayList){
if(someCondition){
continue;
}
//do something
}
Run Code Online (Sandbox Code Playgroud)
可以替换为:
for(Object obj : myArrayList){
if(!someCondition){
//do something
}
}
Run Code Online (Sandbox Code Playgroud)
恕我直言,只要你没有很多(如2-3 continue/ break/ return),维修将是好的.
Dmi*_*nko 14
这段代码没用
for(Object obj : myArrayList) {
// You're checking again and agian the condition that's loop independent
if(myArrayList.contains(someParticularData)){
continue;
}
//do something
}
Run Code Online (Sandbox Code Playgroud)
一个更有效的实现(检查是否需要循环在所有第一)
if (!myArrayList.contains(someParticularData))
for(Object obj: myArrayList) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
在这样的条件下继续很方便:
for(Object obj : myArrayList) {
// Check for each item: do we need to proceed this item
if (someArrayList.contains(obj))
continue;
//do something
}
Run Code Online (Sandbox Code Playgroud)