精华内容
下载资源
问答
  • 主要介绍了javacript使用break内层跳出外层循环的用法,以实例形式对比分析了循环跳出break语句的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • 就是当内层的for循环满足条件的时候,如何结束本次内层循环 ,同时,跳过或者结束本次外层循环。后来,在网上就查阅了一些资料,自己整理了下。 1.for…else… 搭配break 结束双重循环 代码如下: for i in range(1,...

    遇到问题:

    昨天在写代码的时候,遇到一个问题。就是当内层的for循环满足条件的时候,如何结束本次内层循环 ,同时,跳过或者结束本次外层循环。后来,在网上就查阅了一些资料,自己整理了下。

    1.for…else… 搭配break 结束双重循环

    代码如下:

    for i in range(1, 5):
        for j in range(2, 7):
            print(i, j)
            if j == 5:
                break
        else:
            continue
        break
    

    运行结果:

    1 2
    1 3
    1 4
    1 5

    上面代码的逻辑是这样的:

    • 当for …else… 循环正常执行结束的时候,就会运行else语句。但是当中途遇到break 的话,就不会执行else中的内容了。
    • 当内层for循环正常执行时,会执行else中的continue,此时会跳过外层的break语句,实现外层的循环,当内层出现break语句时,else语句忽略,跳出内层循环,顺序执行外层的break语句,跳出外层循环

    2.for…else…搭配continue 结束内循环&跳过本次外循环

    示例代码:

    for i in range(1, 5):
        for j in range(2, 7):
            print(i, j)
            if j == 5:
                print("--------------")
                break
        else:
            continue
    

    运行结果:(我专门打印了分割线,这样看起来很清晰!)

    1 2
    1 3
    1 4
    1 5
    <-------------->
    2 2
    2 3
    2 4
    2 5
    <-------------->
    3 2
    3 3
    3 4
    3 5
    <-------------->
    4 2
    4 3
    4 4
    4 5
    <-------------->

    上面代码的逻辑也很简单,看打印结果就很明了。就是当内层for循环满足条件时,就结束本次内循环,同时进入下一轮外循环。

    展开全文
  • 本人电脑2个CPU,每个CPU上有8个核,总共有2*8*2=32个逻辑CPU结论:不管内层for循环是否依赖于外层for循环,其任务分配依据外层for循环迭代的次数来分配线程,这里下面1、2两种情况外层for循环均是32次,所以刚好将...

    本人电脑2个CPU,每个CPU上有8个核,总共有2*8*2=32个逻辑CPU

    结论:不管内层for循环是否依赖于外层for循环,其任务分配依据外层for循环迭代的次数来分配线程,这里下面1、2两种情况外层for循环均是32次,所以刚好将任务分为32个线程并行运行。

    1、内层for循环依赖于外层for循环时

    #include <stdio.h>
    #include <omp.h>

    int main()
    {
    int n,i;
    int csum_ch[32];
    /*csum_ch[0]=0;*/

    #pragma omp parallel for private(n,i,csum_ch,)
        for(n=0;n<32;n++){
          printf("n=%d id=%d\n",n,omp_get_thread_num());
          for(i=0;i<n;i++)
           {
             csum_ch[n]=i+1;
           }
           printf("csum_ch[%d]=%d id=%d\n",n,csum_ch[n],omp_get_thread_num());
        }
      /* printf("csum_ch[0]=%d\n",csum_ch[0]); */

    }

    vi project5.c

    gcc -fopenmp -o project5 project5.c

    ./project5

    输出:

    n=6 id=6

    csum_ch[6]=6 id=6
    n=12 id=12
    csum_ch[12]=12 id=12
    n=15 id=15
    csum_ch[15]=15 id=15
    n=7 id=7
    csum_ch[7]=7 id=7
    n=25 id=25
    csum_ch[25]=25 id=25
    n=26 id=26
    csum_ch[26]=26 id=26
    n=10 id=10
    csum_ch[10]=10 id=10
    n=14 id=14
    csum_ch[14]=14 id=14
    n=8 id=8
    csum_ch[8]=8 id=8
    n=5 id=5
    csum_ch[5]=5 id=5
    n=22 id=22
    csum_ch[22]=22 id=22
    n=23 id=23
    csum_ch[23]=23 id=23
    n=21 id=21
    csum_ch[21]=21 id=21
    n=24 id=24
    csum_ch[24]=24 id=24
    n=11 id=11
    csum_ch[11]=11 id=11
    n=20 id=20
    csum_ch[20]=20 id=20
    n=29 id=29
    csum_ch[29]=29 id=29
    n=19 id=19
    csum_ch[19]=19 id=19
    n=1 id=1
    csum_ch[1]=1 id=1
    n=27 id=27
    csum_ch[27]=27 id=27
    n=4 id=4
    csum_ch[4]=4 id=4
    n=3 id=3
    csum_ch[3]=3 id=3
    n=16 id=16
    csum_ch[16]=16 id=16
    n=30 id=30
    csum_ch[30]=30 id=30
    n=28 id=28
    csum_ch[28]=28 id=28
    n=9 id=9
    csum_ch[9]=9 id=9
    n=2 id=2
    csum_ch[2]=2 id=2
    n=0 id=0
    csum_ch[0]=32 id=0
    n=13 id=13
    csum_ch[13]=13 id=13
    n=18 id=18
    csum_ch[18]=18 id=18
    n=17 id=17
    csum_ch[17]=17 id=17
    n=31 id=31

    csum_ch[31]=31 id=31

    不太明白初始csum_ch[0]的值为何不是0?

    2、内层循环与外层循环相互独立时

    #include <stdio.h>
    #include <omp.h>

    int main()
    {
    int n,i;
    int csum_ch[32];
    /*csum_ch[0]=0;*/

    #pragma omp parallel for private(n,i,csum_ch,)
        for(n=0;n<32;n++){
          printf("n=%d id=%d\n",n,omp_get_thread_num());
          for(i=0;i<5;i++)
           {
             csum_ch[n]+=i;
           }
           printf("csum_ch[%d]=%d id=%d\n",n,csum_ch[n],omp_get_thread_num());
        }
      /* printf("csum_ch[0]=%d\n",csum_ch[0]); */

    }

    vi project4.c

    gcc -fopenmp -o project4 project4.c

    ./project4

    输出:

    n=27 id=27
    csum_ch[27]=10 id=27
    n=26 id=26
    csum_ch[26]=10 id=26
    n=13 id=13
    csum_ch[13]=10 id=13
    n=15 id=15
    csum_ch[15]=10 id=15
    n=30 id=30
    csum_ch[30]=10 id=30
    n=28 id=28
    csum_ch[28]=10 id=28
    n=0 id=0
    csum_ch[0]=42 id=0
    n=22 id=22
    csum_ch[22]=10 id=22
    n=25 id=25
    csum_ch[25]=10 id=25
    n=23 id=23
    csum_ch[23]=10 id=23
    n=24 id=24
    csum_ch[24]=10 id=24
    n=14 id=14
    csum_ch[14]=10 id=14
    n=6 id=6
    csum_ch[6]=10 id=6
    n=17 id=17
    csum_ch[17]=10 id=17
    n=12 id=12
    n=2 id=2
    csum_ch[2]=10 id=2
    n=20 id=20
    csum_ch[20]=10 id=20
    n=4 id=4
    csum_ch[4]=10 id=4
    n=21 id=21
    csum_ch[21]=10 id=21
    n=29 id=29
    csum_ch[29]=10 id=29
    n=18 id=18
    csum_ch[18]=10 id=18
    n=3 id=3
    csum_ch[3]=10 id=3
    n=31 id=31
    csum_ch[31]=10 id=31
    n=19 id=19
    csum_ch[19]=10 id=19
    n=7 id=7
    csum_ch[7]=10 id=7
    n=1 id=1
    csum_ch[1]=10 id=1
    n=10 id=10
    csum_ch[10]=10 id=10
    n=5 id=5
    csum_ch[5]=10 id=5
    csum_ch[12]=10 id=12
    n=9 id=9
    csum_ch[9]=10 id=9
    n=11 id=11
    csum_ch[11]=10 id=11
    n=8 id=8
    csum_ch[8]=10 id=8
    n=16 id=16

    csum_ch[16]=10 id=16

    不太明白初始csum_ch[0]的值为何不是0?

    3、将第二种情况中的外层for迭代次数32改为33,

        cp project4.c project6.c

        vi project6.c (修改迭代次数, for(n=0;n<33;n++))

        gcc -fopenmp -o project6 project6.c

        ./project6

    c源程序为

    #include <stdio.h>
    #include <omp.h>

    int main()
    {
    int n,i;
    int csum_ch[33];
    /*csum_ch[0]=0;*/

    #pragma omp parallel for private(n,i,csum_ch,)
        for(n=0;n<33;n++){
          printf("n=%d id=%d\n",n,omp_get_thread_num());
          for(i=0;i<5;i++)
           {
             csum_ch[n]+=i;
           }
           printf("csum_ch[%d]=%d id=%d\n",n,csum_ch[n],omp_get_thread_num());
        }
      /* printf("csum_ch[0]=%d\n",csum_ch[0]); */

    }

    输出:n=0 id=0
    csum_ch[0]=42 id=0
    n=1 id=0
    csum_ch[1]=10 id=0
    n=2 id=1
    csum_ch[2]=9 id=1
    n=3 id=1
    csum_ch[3]=10 id=1
    n=22 id=11
    csum_ch[22]=10 id=11
    n=23 id=11
    csum_ch[23]=10 id=11
    n=30 id=15
    csum_ch[30]=10 id=15
    n=31 id=15
    csum_ch[31]=10 id=15
    n=26 id=13
    csum_ch[26]=10 id=13
    n=27 id=13
    csum_ch[27]=10 id=13
    n=32 id=16
    csum_ch[32]=10 id=16
    n=12 id=6
    csum_ch[12]=10 id=6
    n=13 id=6
    csum_ch[13]=10 id=6
    n=16 id=8
    csum_ch[16]=10 id=8
    n=17 id=8
    csum_ch[17]=10 id=8
    n=10 id=5
    csum_ch[10]=10 id=5
    n=6 id=3
    csum_ch[6]=10 id=3
    n=7 id=3
    csum_ch[7]=10 id=3
    n=28 id=14
    csum_ch[28]=10 id=14
    n=29 id=14
    csum_ch[29]=10 id=14
    n=20 id=10
    csum_ch[20]=10 id=10
    n=8 id=4
    csum_ch[8]=10 id=4
    n=9 id=4
    csum_ch[9]=10 id=4
    n=11 id=5
    n=18 id=9
    csum_ch[18]=10 id=9
    n=19 id=9
    n=4 id=2
    csum_ch[4]=10 id=2
    n=5 id=2
    csum_ch[5]=10 id=2
    csum_ch[11]=10 id=5
    n=14 id=7
    csum_ch[14]=10 id=7
    n=15 id=7
    csum_ch[15]=10 id=7
    n=21 id=10
    csum_ch[21]=10 id=10
    n=24 id=12
    csum_ch[24]=10 id=12
    n=25 id=12
    csum_ch[19]=10 id=9

    csum_ch[25]=10 id=12

    依然不清楚csum_ch[0]初始值的由来,请高人指点。

    展开全文
  • 描述:双层while循环时,想在不满足外层循环条件时跳出内层循环 上面代码中的第二个方法中,如果内层循环中两个while循环不添加条件left<right。使用debug的时候,当left指向t,right指向c时,此时,满足外层...

    1 情形描述

    这里使用while双层循环时踩的炕,

    描述:双层while循环时,想在不满足外层循环条件时跳出内层循环

    上面代码中的第二个方法中,如果内层循环中两个while循环不添加条件left<right。使用debug的时候,当left指向t,right指向c时,此时,满足外层条件,会进入外层while循环体,执行循环体;内层循环的第一个while作用是,从left开始寻找下一个元音字母,执行这个while循环,当left指向c,此时right仍指向c,此时不满足外层循环条件left< right ,但是还会执行循环体,直到找到下一个元音字母为止或者最后;然后进入外层循环体中的第二个while循环,与上同理

    2 解决方法

    在内层也加上外层循环的这个条件

    //注意这里外层while循环的条件在进入循环体之后就不能作为内层循环条件
    //方法二 实现字符串中元音字符的反转
    function reverseVowels(str) {
        let vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
        let strToArr = str.split('');
        let left = 0;   //左指针,从左开始遍历
        let right = strToArr.length - 1; //右指针
        let temp;
        while(left < right){
            while (vowels.indexOf(strToArr[left]) === -1 && left < right){  //从left开始向右寻找第一个元音字母
                /*如果这里不设置left< right,将会得到想象不到的结果
                因为这里不设置这个条件,那么开始的时候,left< right,会满足外层循环条件,进入循环体
                但在内层循环的时候,可能会出现left>right,虽然不满足外层条件,但是还是会执行内层循环体
                * */
                //原因:因为满足外层循环条件之后,必须会执行外层循环体一次,之后才会再判断条件
                left++;
            }
            while (vowels.indexOf(strToArr[right]) === -1 && left < right){ //从right开始向左寻找第一个元音字母
                right--;
                //continue;
            }
            temp = strToArr[left];
            strToArr[left] = strToArr[right];
            strToArr[right] = temp;
            left++;
            right--;
        }
        return strToArr.join('');
    }
    
    let rel = reverseVowels('leetcode');
    console.log(rel)
    

    百里于2020年4月24日

    如果有错,请您指出!如有侵权,请联系我删除!

    展开全文
  • 今天小编就为大家分享一篇解决Python内层for循环如何break出外层的循环的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • **答:(1)正常情况下,break只是跳出内层循环。 (2)可以使用带标签的break,相当于goto,比如break a指的是退出a所在的循环。但是不建议使用这种方法,因为跳多了出不来。** 举例子:int i=0; int j=0; a:...

    答:(1)正常情况下,break只是跳出内层循环。
    (2)可以使用带标签的break,相当于goto,比如break a指的是退出a所在的循环。但是不建议使用这种方法,因为跳多了出不来。

    另外:带标签的continue用法类似。

    举例子:

                   int i=0;
                   int j=0;
                   a: for(;i<10;i++){
                   b:for(;j<10;j++){
                   if(j==4){
                        break a;  //跳出a所在的循环
                   }
    展开全文
  • 我发布到报名在线EDU84.COM上,大家分享一下JAVA:内层方法抛出异常,外层方法捕捉并处理异常 public void methodA (){  try{  // 调用methodB  methodB();  }  catch(ExceptionType et){  // 相应...
  • Java 内层for循环控制外层for循环

    千次阅读 2016-09-22 16:10:31
    Java 内层for循环控制外层for循环
  • 本来,把查询条件写在最外层,可以通过优化器的谓词推入(predicate push down),也就是把外层的查询条件,放到内层查询中,但是有的时候,由于sql非常复杂,优化器无法对sql做这种查询转换(query transform),...
  • //外层循环 for(int m=0;m<list01.size();m++){ ...//内层循环 for(int n=0;n<list02.size();n++){ if(条件跳出内循环,外循序执行下一个){ flag=true; break; } } if(flag){ continue.
  • 内层div展示新闻,内容或多或少,因此内层div做成...但是展示效果是,内层div高度被拉高时,外层div没有跟随被拉高,导致内部div溢出外层div之外,导致外层div 之外的div进入了内部div。 想到是外层div没有跟随内部div
  • 两层for循环,在内层循环中执行业务逻辑,跳出内层循环执行外层循环的下一个数据 List<String> strings = Arrays.asList("a","b","c"); List<String> nums = Arrays.asList("1","2","3","4"); A:for...
  •  像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为 闭包 。  闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保 引用的局部变量在函 数...
  • 1.问题 目前有个两个方法,使用@Transactional声明事务。a方法中声明事务捕捉到Exception异常会回滚事务。现在当b方法中抛出异常,a方法就会回滚,目前有这样一个需求:当b方法抛出异常,a方法事务不回滚。...
  • //定义i控制内层循环 外层遍历第一条记录 内层循环也只遍历第一天记录 外层遍历第二条记录时内层也只遍历第二条记录以此类推  //i 从0开始 对应forEach 索引也是从0开始 //userList 只有5条记录 ...
  • Div嵌套 内层取消外层事件

    千次阅读 2016-03-08 09:32:29
    <!DOCTYPE HTML> <title>Test Demo.... div[id=inner_1]:hover{ background-color: #AAAAAA; }
  • 内层Div将外层Div撑开

    千次阅读 2016-05-21 11:57:47
    在CSS排版中,如果一个层中的层使用了float浮动的话,那么就有可能会出现外层没有被内层撑开的情况,如以下代码所示: div style="width:300px; background-color:Red;">   测试  div style="width:100px;...
  • List<String> strings = Arrays.asList("a","b","c","d"); List<String> nums = Arrays.asList("1","2","3","4","5"); outer:for(String str:strings){ for(String num:nums){ ...
  • vue外层div上有点击事件,内层div也有点击事件,想要实现点内层div,不触发外层点击事件 vue有个属性是@click.stop
  • 1、设置两个div,如下 <div id="parentDiv" style="padding:20px;width:160px;height:200px;background:#0aadff;color:#fff;...我是外层div</span> <div id="childrenDiv" style="paddin...
  • 外层容器使用border-radius:4px 内层还是矩形 可以在外层加上overflow: hidden
  • Java中for循环嵌套的循环外循环

    万次阅读 多人点赞 2018-08-05 15:14:25
     首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环。(外循环控制行数,内循环控制每一行的个数) 下面以冒泡排序为例说明: ...
  • 电信设备-带有外层容器在其中可移动的内层容器的撒料装置.zip
  • 主要给大家介绍了利用jquery如何禁止外层滚动条的滚动,文中给出了详细的示例代码,相信对大家的理解学习具有一定的参考借鉴价值,有需要的朋友可以参考借鉴,下面来一起看看吧。
  • 内层DIV跟着外层DIV变化

    千次阅读 2015-07-30 09:35:22
    内层DIV跟着外层DIV变化
  • css外层DIV半透明内层div不透明-弹出层效果的实现 &amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;utf-8&quot; /&...
  • 内层循环的下标用wx:for-index="变量名(随便起)",在内循环中就能直接通过{{index}}取到外层循环的索引下标
  • BFC情况下人们通常在div中使用floatmargin,这会经常出现一些问题,这里就来看一下CSS使用BFC规则布局引发外层div包裹内层div的处理方法,需要的朋友可以参考下.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 152,757
精华内容 61,102
关键字:

内层和外层