栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

shell 的 break 和 continue 与 C++/Java/Python 的区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

shell 的 break 和 continue 与 C++/Java/Python 的区别

摘要: 本文简单了解一下在 shell 脚本中的 continue 和 break 与 C++/Java/Python 中的不同

【对数据分析、人工智能、金融科技、风控服务感兴趣的同学,欢迎关注我哈,阅读更多原创文章】
我的网站:潮汐朝夕的生活实验室
我的公众号:潮汐朝夕
我的知乎:潮汐朝夕
我的github:FennelDumplings
我的leetcode:FennelDumplings

在 C++, Java, Python 中,都有 continue, break 用来提前结束循环,在 Shell 中也是有这个用法的,但是稍微有一些区别。

在 C++, Java, Python 中,continue 和 break 都只能跳出当前层次的循环,因此内层循环的 continue, break 对外层循环不起作用,而在 Shell 中,break 和 continue 是可以跳出多层循环的,这一点在使用中需要特别注意。

break

在 Shell 中,break 的写法如下

break n

其中 n 表示跳出循环的层数,省略的话,则跳出当前循环,也就是相当于 n 默认为 1。

例如打印一个 4 * 4 的矩阵,数字分别为 1 到 16,代码如下。可以看到 break 2 跳出外层循环,而默认的 break 跳出内层循环(相当于 break 1)。

i=0

while ((++i));
do
    j=0;
    while ((++j));
    do
        if (( i > 4 )); then
            break 2 # 跳出外层循环
        fi
        if (( j > 4 )); then
            break # 跳出内层循环
        fi
        printf "%-4d" $((i * j))
    done
    printf "n"
done
continue

在 Shell 中,Continue 的写法如下

continue n

n 的含义与 break 一样,表示循环的层数,如果省略,则 continue 只对当前循环有效,相当于 n 默认为 1。

实例代码如下。可以看到 continue 2 会跳过内外层循环。

for (( i=4; i<=8; i++ ));
do
    for (( j=4; j<=8; j++ ));
    do
        if (( i * j == 20 )); then
            continue 2 # 跳过内外层循环
        fi
        printf "%d*%d=%-4d" ${i} ${j} $((i*j))
    done
    printf "n"
done

我是潮汐,北京人,上海交大电子信息专业本硕。2018年硕士毕业后一直做风控AI算法工程师,深耕AI技术,金融科技和风控服务。在大型社交平台做过内容合规和反作弊,目前主要做大风控业务下的系统研发和建模。爱好骑行,围棋,钢笔,算法竞赛。

对计算机、数学、算法感兴趣的同学,欢迎关注我的公众号,阅读更多原创文章。

公众号:算法题刷刷
(1)约伴刷题: Leetcode, Hackerrank, ProjectRuler
(2)算法工程师八股文: C++, Python, 机器学习, 领域算法, 算法工程, 数学
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/873398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号