int countAdd=0;
        string[] roleName = txtRoleName.Text.Split(',');
        for (int j = 0; j < roleName.Length; j++)
        {
            for ( int i = 0; i < ListUser.Items.Count; i++)
            {
                string str_Exist = "select * from t_role_menu where menu_id='" + roleName[j] + "' and user_id=" + Int32.Parse(ListUser.Items[i].Value) + "";
                DataSet ds_Exist = DbHelperSQL.Query(str_Exist);
                if (ds_Exist.Tables[0].Rows.Count.ToString() =="0")
                {
                    string str_Add = "insert into t_role_menu values ('" + roleName[j] + "'," + Int32.Parse(ListUser.Items[i].Value.ToString()) + ")";
                    countAdd = DbHelperSQL.ExecuteSql(str_Add);
                }
                else
                {
                    return;
                }
            }
        }return为什么会一下跳出两个循环呢?不是跳到上一层循环么?

解决方案 »

  1.   

    return 是直接退出方法了,要退出某一层循环,应该用break
      

  2.   

    break;是跳出循环;
    return; 直接返回方法了
      

  3.   

    break; 是跳出循环; 
    return; 直接跳出方法了
      

  4.   

    break;是跳出循环; 
    return; 直接返回方法了
      

  5.   

    break;中断循环
    return;方法返回
    continue;中止此次循环,进行下次循环
      

  6.   

    break;中断循环 
    return;方法返回
      

  7.   

    break;是跳出循环; 
    return; 是返回不是跳出
      

  8.   

    continue吧  跳出本次循环 break是跳出整个循环
      

  9.   

    return 是直接退出方法了,要退出某一层循环,应该用break 
      

  10.   

    return是结束整个函数了退出循环是break
      

  11.   

    return是整个方法体的退出!!!
    单独的循环体的退出是break!!
      

  12.   

    return 是返回变量后结束当前的函数
    break才是退出当前的循环继续下一句代码
      

  13.   

    return,是直接返回该方法。就是执行完return后,该方法就强制结束了。
    要跳出循环的话,必须使用break关键字。
    跳出两次循环用两个break才行,一个break只能跳出一个循环的。
      

  14.   

    用return 是返回值
    用break 是跳出循环
    不要混淆了两者的区别!