首页新闻找找看学习计划

内层循环控制外层循环

0
悬赏园豆:5 [已解决问题] 解决于 2015-08-25 10:53

怎样做到m=true时跳转到外层循环继续接下来的循环而不是对d_info.Rows在重新循环dr1没有归零

bool m = false;

foreach (DataRow dr1 in d_info.Rows)

{

//获取遍历的当前行

foreach (DataRow dr2 in dt.Rows)

{

//判断

if (dr1[0].ToString() == dr2[0].ToString())

{

if (dr1[1].ToString() == dr2[1].ToString())

{

m = true;

}

 

//SQLHelper.InsertData(Connstr1, dt, dr1, string.Format("D_Real_{0}", siteid));

 

}

if (m == true)

{

continue;

}

}

}

 

}

wwwzhang的主页 wwwzhang | 初学一级 | 园豆:37
提问于:2015-08-13 20:10
< >
分享
最佳答案
0

把continue换成break

收获园豆:5
小白菜T | 小虾三级 |园豆:564 | 2015-08-13 20:28

我试过,但是循环他不在继续循环 d_info.Rows[1]项,而是从d_info.Rows[0]项开始

wwwzhang | 园豆:37 (初学一级) | 2015-08-13 20:32

@wwwzhang: 我觉得你的问题不是重新从d_info.Rows[0]项开始,而是你的标识m没有重设为false

把 continue; 改成 m=false;break; 再试试

小白菜T | 园豆:564 (小虾三级) | 2015-08-14 10:22
其他回答(3)
0

你的意思是你知道Continue,然而不知道Break,要不你试试Break?

爱编程的大叔 | 园豆:29788 (高人七级) | 2015-08-13 20:30
0

如果只是结束单层循环的话,可以考虑使用break,即将你的代码中的continue改为break。

如果是结束多重循环的话,可以考虑使用如下语法。

 1 public class BreaklFor {
 2     public static void main(String args[]){
 3         OK:                    //设置一个标记 使用带此标记的break语句跳出多重循环体
 4         for(int i=1;i<100;i++){   //让i循环99次
 5             for(int j=1;j<=i;j++){
 6                 if(i==10){
 7                     break OK ;
 8                 }
 9                 System.out.print(i + "*" + j + "=" + i*j) ;
10                 System.out.print(" ") ;
11             }
12             System.out.println() ;
13         }
14     }
15 }
闫冬 的地盘 | 园豆:218 (菜鸟二级) | 2015-08-14 07:40
0

外层加个判断,内层要结束整个循环的时候给判断的变量赋值

吴瑞祥 | 园豆:28731 (高人七级) | 2015-08-14 09:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册