QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 994|回复: 2
打印 上一主题 下一主题

循环嵌套

[复制链接]
字体大小: 正常 放大

413

主题

36

听众

1854

积分

升级  85.4%

  • TA的每日心情
    开心
    2019-9-18 21:55
  • 签到天数: 258 天

    [LV.8]以坛为家I

    社区QQ达人

    群组2015国赛冲刺

    群组2016美赛公益课程

    群组国赛讨论

    群组第三届数模基础实训

    群组Matlab讨论组

    跳转到指定楼层
    1#
    发表于 2015-9-8 22:16 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta

    循环嵌套
    一个循环完全出现在另一个循环当中,这种情况经常发生。如果一个循环完全出现在另一个循环当中,我们称这两个循环为带嵌套的循环。下面的例子用两重for循环嵌套来计算并写出结果。

    for ii = 1:3
       for jj = 1:3
            product = ii * jj;
            fprintf('%d * %d = %d\n',ii,jj,product);
       end
    end


    在这个例子中,外部的for循环将把1赋值于循环指数ii,然后执行内部for循环。内部循环的循环体将被执行3次,它的循环指数ii将会先后被赋值为123。当完全执行完内部的循环后,外部的for循环将会把2赋值于循环指数ii,然后内部的for循环将会再次执行。直到外部for循环执行3次,这个重复过程结束。产生的结果为

    1 * 1 = 1
    1 * 2 = 2
    1 * 3 = 3
    2 * 1 = 2
    2 * 2 = 4
    2 * 3 = 6
    3 * 1 = 3
    3 * 2 = 6
    3 * 3 = 9


    注意外部for循环指数变量增加之前,内部for循环要完全执行完。

    matlab遇到一个end语句,它将与最内部的开放结构联合。所以第一个end语句与语句“for jj = 1:3,第二个end语句与语句“for ii = 1:3联合。如果在循环嵌套中一个end语句突然被删除,将会产生许多难以发现的错误。

    如果for循环是嵌套的,那么它们必须含有独立的循环变量。如果它们含有相同的循环变量,那么内部循环将改变外部循环指数的值。

    如果breakcontinue语句出现在循环嵌套的内部,那么break语句将会在包含它的最内部的循环起作用。

    for ii = 1:3
       for jj = 1:3
            if jj ==3;
                break;
            end
            product = ii * jj;        
            fprintf('%d * %d = %d\n',ii,jj,product);
       end
       fprintf('End of inner loop\n');
    end
    fprintf('End of outer loop\n');


    如果内部循环指数jj3,那么break语句开始执行,这将导致程序跳出内部循环。程序将会打印出”End of inner loop”,外部循环指数将会增加1,内部循环的执行重新开始。产生的输出值为:

    1 * 1 = 1
    1 * 2 = 2
    End of inner loop
    2 * 1 = 2
    2 * 2 = 4
    End of inner loop
    3 * 1 = 3
    3 * 2 = 6
    End of inner loop
    End of outer loop



    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国版主团队!

    1

    主题

    10

    听众

    36

    积分

    升级  32.63%

  • TA的每日心情
    开心
    2015-9-15 19:57
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    自我介绍
    我行我素而又不任性,O(∩_∩)O~
    回复

    使用道具 举报

    1

    主题

    10

    听众

    36

    积分

    升级  32.63%

  • TA的每日心情
    开心
    2015-9-15 19:57
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    自我介绍
    我行我素而又不任性,O(∩_∩)O~
    “break语句将会在包含它的最内部的循环起作用。”
    此句需要修改一下才严谨!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-21 14:59 , Processed in 0.435238 second(s), 63 queries .

    回顶部