首页 > 其他分享 >入门C语言Day18——break&continue&goto语句

入门C语言Day18——break&continue&goto语句

时间:2024-07-27 18:53:43浏览次数:17  
标签:语句 goto int C语言 break continue 循环

前面的博文中有提到do-while与for循环语句,其中的流程图中有break和continue这两个部分还没解释。

所以今天先来解释一下break与continue语句。

break 和 continue 两个关键字都被运用在循环中。

break 的作用是永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。

continue 的作用是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中也有所差异。

先说说 while 循环中的 break 和 continue

先拿 break 举个例子:

#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
        if(i == 5)
            break;
        printf("%d ", i);
        i = i+1;
    }
    return 0;
}

结果是只打印了1、2、3、4,因为打印到5时,满足了 i ==5 ,于是运行了break,使循环终止了。

break 被执行, break 外的第一层循环就终止了。所以break可以用来终止循环。

假如把上文的 break 改为 continue ,那么程序就会陷入死循环。

#include <stdio.h>
int main()
{
    int i = 1;
    while(i<=10)
    {
        if(i == 5)
            continue;
        printf("%d ", i);
        i = i+1;
    }
    return 0;
}

从 i==5,执行了 continue 以后就直接跳过了 i = i+1 , 所以就一直 i 为5,于是程序进入了死循环。

continue 可以帮助我们跳过某一次循环 continue 后边的代码,直接到循环的判断部分,进入下一次循环的判断

如果循环的调整是在 continue 后边的话,可能会造成死循环。

而在 for 循环中,break同上,但是continue在这里就可以正常运行。

#include <stdio.h>
int main()
{
    int i = 1;
    for(i=1; i<=10; i++)
    {
         if(i == 5)
             continue;
         printf("%d ", i);
    }
    return 0;
}

在 for 循环中 continue 的作用是跳过本次循环中 continue 后的代码,直接去到循环的调整部分。

当 i==5,时执行continue,跳过了printf,直接到了i++,所以不会打印5,而是直接开始到6并打印。

所以最后的结果是1、2、3、4、6、7、8、9、10,没有5

最后来说一下 goto 语句,这是一种C语言中特别的语法,goto 语句可以在同一个函数内跳转到设置好的标号处。(有点看不懂....对吧?)

举个例子:

#include <stdio.h>
int main()
{
    printf("hehe\n");
    goto next;
    printf("haha\n");

next:
    printf("跳过了haha的打印\n");
    return 0;
}

到了goto,就直接到了next那里,也就跳过了printf("haha\n")

goto 语句如果使用的不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以我们的建议是能不用尽量不去使用

但是 goto 语句也不事一无是处,在多层循环的代码中,如果想快速跳出使用goto,就会非常的方便了。

比如一般用break打破循环,但他只能打破一层,所以想一次性跳出所有循环,就可以用goto,这就是所说的多层循环中的使用情况。

今天的学习内容到此结束,预知后事如何,且听下回分解~~

标签:语句,goto,int,C语言,break,continue,循环
From: https://blog.csdn.net/2401_85895002/article/details/140642102

相关文章

  • 写一个函数返回参数二进制中1的个数(c语言)
    1.int一共有32位,我们要知道一个数取余2等于1(n%2==1),就可以得到二进制中1的个数.然后一个数除于2(n=n/2),就可以使32位向右一位(例如:5为101,5/2==2,2为10,)。方法1(不可以输入负数)//写一个函数返回参数二进制中1的个数//方法1intcount(intn,intz){ //当a为正数的 if(n>......
  • 调整奇数全部位于偶数前面(c语言)
    1.方法一:第一步先建一个arr,判断arr中的奇数(arr[i]%2!=0)和偶数(arr[i]%2==0)分别打印,先打印奇数,后打印偶数。//调整奇数全部位于偶数前面//方法一voidtest(int*arr,intsz){ inti=0; for(i=0;i<sz-1;i++) { if(arr[i]%2!=0) { printf("%d......
  • 简单的扫雷——基于C语言的控制台小游戏
    前言:  “将大象装进冰箱要几步?--打开冰箱,把大象放进去,关上冰箱。”  同样的,该扫雷游戏的编写过程也只需三步:逻辑梳理-代码实现-运行调试。本文将使用C语言来一步步剖析并完成扫雷这一案例。一.扫雷的游戏逻辑  该扫雷的游戏逻辑为:  1.生成棋盘,并布置数个......
  • 《重生到现代之从零开始的C语言生活》—— 分支和循环
    前言:因为C语言是结构化的程序设计语言,这里面的结构指的是顺序结构,选择结构,循环结构,在日常生活中,所见的事都能拆分成这几个结构或者这三种结构的组合。if语句ifif在英文中有如果的意思,在C语言中意思相似if(表达式)要执行的语句如果表达式成立(为真),则执行语句,如果不......
  • C语言day04(输入输出、垃圾字符、分支语句)
    C语言day04【1】按照字符输入输出1》输出:putchar定义格式:intputchar(intc);功能:按照字符输出,向终端输出一个字符参数:要输出的字符的ascii值、字符返回值:输出字符的ASCII值2》输入:getchar定义格式:intgetchar(void)功能:按照字符输入,从终端输入一个字符参数:无......
  • C语言day05(循环语句)
    C语言day05【1】循环语句1》for循环语法:定义变量for(表达式1;表达式2;表达式3){//循环执行的语句块}表达式1:赋初始值表达式2:控制循环执行的语句(进入循环的条件或终止循环的条件)表达式3:递增或递减执行顺序:执行顺序:定义变量,执行表达式1,判断表达式2是否成立......
  • C语言初识指针
    概述:本文章主要介绍C语言中指针最基础和核心的知识点。内存:在学习指针之前,让我们先了解内存空间、内存是如何编号、以及内存单元的大小。内存空间:内存空间的分配类似于日常生活中对空间的管理。我国国土面积960万平方公里,为加强对各个地区的管理,设立了省、市、区等行政单......
  • c语言学习第三期
    1.if语句2.switch语句3.while循环4.for循环5.dowhile循环6.break和continue7.goto语句 1.if语句1.1ifif语句的语法形式如下: 表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏。在C语⾔中,0为假,⾮0表⽰真,也就是表达式的结果如果是0,则语句不执⾏,表达式......
  • 入门C语言Day19——猜随机数游戏
    之前学了分支与循环的很多内容,所以今天可以试着来运用之前的知识来试着写一些有趣的程序——猜随机数游戏。(当然,还有一些知识要补充。)这个多数人都应该有所耳闻,就是规定一个数字范围,然后去猜数字,根据反馈去调整所猜的数字直到猜对。所以我们假定电脑生成的随机数为1~100,并且......
  • 学习c语言第十四天(调试+练习)
    一、调试所有发生的事情都一定有迹可循,如果问心无愧,就不需要掩盖也就没有迹象了,如果问心有愧就必然需要掩盖,那就一定会有迹象,迹象越多就越容易顺藤而上,这就是推理的途径。顺着这条途径顺流而下就是犯罪,逆流而上,就是真相。1.什么是调试调试(英语:Debugging/Debug),又称除错,......