+ -
当前位置:首页 → 问答吧 → for循环中的if语句加break有什么后果!

for循环中的if语句加break有什么后果!

时间:2011-11-09

来源:互联网

@Override 
public void setInput(Traffic traffic) { 
this.traffic = traffic; 

for (IAttribute attr : traffic.getAttrs()) { 
if (attr instanceof DpiAttr) {//获取DpiAttr 
dpiAttr = (DpiAttr) attr; 
floderAttr = dpiAttr.getFloderAttr(); 
  break;//////////////////////////注意此处 
} else if (attr instanceof FilesAttr) {//获取FilesAttr 
filesAttr = (FilesAttr) attr; 



if (null == dpiAttr) { 
dpiAttr = DpiModelFactory.eINSTANCE.createDpiAttr(); 
traffic.getAttrs().add(dpiAttr); 


if (null == floderAttr) { 
floderAttr = DpiModelFactory.eINSTANCE.createFloderAttr(); 
dpiAttr.setFloderAttr(floderAttr); 


if (null == filesAttr) { 
filesAttr = ModelFactory.eINSTANCE.createFilesAttr(); 
traffic.getAttrs().add(filesAttr); 



initData(); 


我在if中加了break将有什么样的严重后果 请大家帮我分析下 

作者: b97672y   发布时间: 2011-11-09

满足if条件,则退出for循环
一般if都是判断要查找的目标,如果找到了目标,后面就不需要再查找了,所以就break退出for循环

作者: qybao   发布时间: 2011-11-09

你第一个条件符合,就直接跳出循环了,下面的代码就相当于废话

作者: shixitong   发布时间: 2011-11-09

在你的另一贴回了,这里也贴上吧

影响就是,如果你找到dpiAttr和floderAttr就break,那么就不会再查找filesAttr了,所以会导致后面的
if (null == filesAttr)成立

作者: qybao   发布时间: 2011-11-09

满足了if的条件就跳出整个循环

作者: huang_1106   发布时间: 2011-11-09

break的作用就是跳出循环。在你这里,就是在第一次进入if后,执行完这一块就会跳出循环了,就不会执行else if的内容这一段,也不会再循环后面的内容。

作者: xiaoqiuwyh   发布时间: 2011-11-09

跳出整个循环

作者: liujun12355   发布时间: 2011-11-09

重复发帖了

作者: funfenffun   发布时间: 2011-11-09

引用楼主 b97672y 的回复:
@Override
public void setInput(Traffic traffic) {
this.traffic = traffic;

for (IAttribute attr : traffic.getAttrs()) {
if (attr instanceof DpiAttr) {//获取DpiAttr
dpiAttr = (DpiAttr) attr;
……

在if 中加break 满足就会 跳出 for 循环了!!

作者: mgz521009   发布时间: 2011-11-09

如果满足IF条件就就执行break退出for循环

作者: guobing965816   发布时间: 2011-11-09

直接跳出循环

作者: chenzhi306721   发布时间: 2011-11-09

break会跳出整个循环,你可以用continue跳出本次循环,或者可以加标号,跳出想跳出的层次循环

作者: jya126   发布时间: 2011-11-09

直接跳出循环!

作者: java_123456789   发布时间: 2011-11-09

无证程序员啊

作者: canghaiguzhou   发布时间: 2011-11-09

跳出该for的循环

作者: AK_47_A   发布时间: 2011-11-09

if (attr instanceof DpiAttr) {//获取DpiAttr  
dpiAttr = (DpiAttr) attr;  
floderAttr = dpiAttr.getFloderAttr();  
  break;//////////////////////////注意此处  
} else if (attr instanceof FilesAttr) {//获取FilesAttr  
filesAttr = (FilesAttr) attr;  
}  
}  


if (attr instanceof DpiAttr) {//获取DpiAttr
这个条件成立的话 就跳出for循环 ,执行以下语句
if (null == dpiAttr) {

作者: cai5   发布时间: 2011-11-09