跳出循环的三种方式

跳出循环的三种方式break、continue、goto三个关键字都可以用于跳出循环,但三者跳出循环的情况却有所不同braek:跳出本层循环,执行本层循环下面的语句。continue:终止本次循环,进入下一次循环。goto:调到标号所在位置,执行标号下面的语句,它比较方便的是可以一次跳出多重循环,但是它只能在函数内跳转,不能在函数间跳转。goto语句有一定的弊病,会使程序的流程变得混乱,有时会难以理解,并

大家好,又见面了,我是你们的朋友全栈君。

break、continue、goto三个关键字都可以用于跳出循环,但三者跳出循环的情况却有所不同
braek:跳出本层循环,执行本层循环下面的语句。
continue:终止本次循环,进入下一次循环。
goto:调到标号所在位置,执行标号下面的语句,它比较方便的是可以一次跳出多重循环,但是它只能在函数内跳转,不能在函数间跳转。goto语句有一定的弊病,会使程序的流程变得混乱,有时会难以理解,并且程序的调试与排错也会变得复杂。

#include<stdio.h>

int main()
{
    int num = 0;
    int i = 0;
    for (int i = 0; i < 10; i++)
    {
        if (num == 5)
        {
            break;
            num += 2;  
        }
        num += 1;
    }
    printf("%d\n", num);
    system("pause");
    return 0;
}

输出结果为5。
当num =5时,程序直接跳出循环,执行输出语句,故输出为5。

#include <stdio.h>

int main()
{
    int num = 0;
    int i = 0;
    for (int i = 0; i < 10; i++)
    {
        if (num == 5)
        {
            num += 2;     //此处要是不加这条语句,num会一直等于5,使之后每次进入循环时都会从此处
                          //终止而进入下一次循环,num的值不再改变
            continue;

        }
        num += 1;
    }
    printf("%d\n", num);
    system("pause");
    return 0;
}

输出结果为11。
当num = 5时,程序先给num加2(避免以后每次进入时num还为5,会一直continue直到循环结束),终止本次循环,进入下一次循环,直到i = 10时跳出循环,执行输出语句,境分析也可得处输出为11.

#include<stdio.h>

int main()
{
    int num = 0;
    int i = 0;
    for (int i = 0; i < 10; i++)
    {
        for (int j = 0; j < 10; j++)
        {
            if (num == 20)
            {
                goto logo;
            }
            num += 1;
        }

    }
    logo:
    printf("%d\n", num);
    system("pause");
    return 0;
}

输出结果为20。
当num = 20时,程序进入if语句块,执行goto语句,使程序执行位置跳转到goto语句标号所在位置的下一条语句去,即输出语句,因此程序输出为20。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136248.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nginx转发其他网站_nginx搭建网站

    nginx转发其他网站_nginx搭建网站方式一location=/pospal-api2/openapi/v1/orderOpenApi/addOnLineOrder{proxy_passhttps://openapi5.pospal.cn/openinterface/orderOpenApi/addOnLineOrder;}方式二

    2022年10月18日
    0
  • cobol语言基础教程_boo语言

    cobol语言基础教程_boo语言一、基础知识1.程序结构division-部section-节paragraphs-段2.四个部(1)IDENTIFICATIONDIVISION程序的标识部,位于程序的顶部,主要定义了程序的Id,作者等信息。(2)ENVIRONMENTDIVISION环境部声明了程序运行的环境,指定了程序的输入和输出文件,有两个节组成,配置节和输入输出节①配置节由两个段组成,分别是指定了程序编译的环境节(源计算机)和运行环境(目标计算机)②输入输出节由两个段组成分别是文

    2022年10月28日
    0
  • datanode启动不了(datanode启动不了)

    安装Hadoop(伪分布式环境)namenode和datanode无法启动解决方案先附上我参考的安装教程链接10.1.88.4/index_1.php?url=http://www.msftconnecttest.com/redirect我在执行./start-all.sh之后发现,没有任何错误提示,输入jps得到如下结果:[hadoop@localhost…

    2022年4月13日
    63
  • Java哈希表以及哈希冲突

    Java哈希表以及哈希冲突文章目录Java哈希表概念冲突避免冲突哈希函数的设计方法常见哈希函数负载因子调节解决哈希冲突两种常见的方法是:闭散列和开散列哈希表和java类集的关系Java哈希表概念顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。顺序查找时间复杂度为O(N),平衡树中为树的高度,即O(logN),搜索的效率取决于搜索过程中元素的比较次…

    2022年6月22日
    31
  • 简单的Samba文件共享服务搭建「建议收藏」

    简单的Samba文件共享服务搭建「建议收藏」我们知道windows间是通过CIFS(CommonInternetFileSystem),即网上邻居实现文件共享,unixlike间通过NFS(NetworkFileSystem)通过实现文件共享。那么我们如何实现unix和windows之间的文件共享呢?我们可以通过sshclient,和VNC远程登录和管理Linux主机,这两种都支持ftp协议。我们通过FTP协议进行文件更新时,可能

    2022年9月14日
    0
  • java 16进制数据格式化处理工具类,16进制byte数组转String

    java 16进制数据格式化处理工具类,16进制byte数组转String废话不多说,直接上代码。格式化16进制字节数组,做数据处理时用得着,收藏吧!

    2022年8月30日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号