【发布时间】:2014-02-28 00:14:13
【问题描述】:
我正在浏览有关 continue 关键字的问题以更好地理解它,我偶然发现了这一行 in this answer
这些可能是维护定时炸弹,因为除了上下文之外,“继续”/“中断”和它正在继续/中断的循环之间没有直接的联系;
我有这个 for 循环:
for(Object obj : myArrayList){
if(myArrayList.contains(someParticularData)){
continue;
}
//do something
}
现在,我的问题是 - 可以按照我上面所做的方式使用 continue 还是有任何问题?如果是,我可以遵循的替代方法是什么?任何形式的指导都会有所帮助。谢谢。
更新:在这种特殊情况下,我的目标是迭代 Collection(在本例中为 ArrayList),并检查其中是否包含某些特定数据,如果出现则跳过该迭代是真的。
有人指出myArrayList.contains(someParticularData) 是一次性操作,最好在循环之外执行该检查,这正是我所寻找的。另外,我了解到,如果我可以基于某些条件if(someConditon) 使用continue,我可以通过使用if(!someCondition) 很好地避免它。
【问题讨论】:
-
我认为这取决于您希望循环如何工作。
-
用法取决于你的逻辑实现。一个盒子并不适合所有尺寸。
-
嵌套循环会影响可读性和代码维护,否则没关系。
-
如果您认为问题不适合 SO 标志迁移到 Programmers Stackexchange,请不要将问题关闭为“主要基于意见”
-
稍微相关的旁注:在某些方面,使用 continue/break 可以等同于Single Function Exit Pointstackoverflow.com/questions/36707/…的概念