怎样做到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;
}
}
}
}
把continue换成break
我试过,但是循环他不在继续循环 d_info.Rows[1]项,而是从d_info.Rows[0]项开始
@wwwzhang: 我觉得你的问题不是重新从d_info.Rows[0]项开始,而是你的标识m没有重设为false
把 continue; 改成 m=false;break; 再试试
你的意思是你知道Continue,然而不知道Break,要不你试试Break?
如果只是结束单层循环的话,可以考虑使用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 }
外层加个判断,内层要结束整个循环的时候给判断的变量赋值