第十一章 控制语句之转向语句

C语言学习之路

第一章 初识C语言
第二章 变量
第三章 常量
第四章 字符串与转义字符
第五章 数组
第六章 运算符
第七章 指针
第八章 结构体
第九章 控制语句之条件语句
第十章 控制语句之循环语句
第十一章 控制语句之转向语句



前言

首先我们需要了解一下,转向语句是什么?我们都知道,在进行循环语句时,只有当条件不为真的时候才能跳脱出语句的循环。那么转向语句的存在目的就是,即便条件依然为真,依然能够跳出循环。


一、转向语句:

1、break:

break语句在之前的switch语句中,就已经提到了。那么break的存在有什么作用呢?
break的功能如下:

(1)跳出break语句所在循环

在一个循环语句中,我们写一个break的语句,直接跳出循环。但是,在多个循环语句中,break的存在究竟是跳出一个循环还是跳出所有循环呢?

while (1)
{
 while (2)
 { 
    printf("1");
    break;
 }
   printf("2");
}

在这里插入图片描述

当我们执行上述语句后,我们发现,打印的界面中是无数个12。这说明什么呢?这说明当进入内侧循环时,打印出了一个1,然后跳出了内侧的循环后,打印了一个2。接着继续第二次的循环,再次进入内循环打印出了一个1,然后跳出了内侧的循环后,打印了一个2…
所以 break跳出的是最内侧的循环。

(2)跳出switch语句,防止不断地向下执行

int a = 2; 
switch(a)
{
  case 1:
    代码1
    break;
  case 2:
    代码2
    break;
  case 3:
    代码3
    break;
  case 4:
    代码4
    break;
  default:
    代码5
    break;
}

首先,我们对上述的代码进行解释。
在这里插入图片描述
编译器根据a的值,进行第一次判断,发现不满足。再跳转到第二次判断,发现满足条件,那么就开始执行代码2,代码2执行完以后,就会执行后面提到的转向语句break,然后跳出该switch语句。说明break的存在,避免了switch继续执行下面的代码,及时跳了出去。

那如果我们不写break会怎样呢?
以下面的例子为例:
在这里插入图片描述
图解:
在这里插入图片描述
我们发现,没了break之后,代码会不断地向下执行,无论条件是否满足都会执行下面的代码。所以,switch语句只会通过判断条件来决定从何处开始!而通过break的配合退出该语句。否则,代码会执行到底。

2、continue:

break语句的存在,使得直接跳出了整个循环。而continue仅仅是跳出本次循环。什么意思呢?
我们以下面的代码为例。

for(int i=0;i<10;i++)
{
   if(i==5)
   {
    continue;
   }
   printf("%d  ",i);
}

在这里插入图片描述
我们发现,打印的结果中唯独没有5,而其余的数字都打印了出来。
那么这代表着什么呢?代表continue并没有终止整个循环,而仅仅终止了i==5时所对应的循环。
由此我们就能够发现,continue仅仅跳出了本次循环。而break是跳出了整个循环。

3、goto:

goto语句的存在则使得整个代码的执行更加随意和灵活。
语法:

goto A;


A ://冒号
 while (1)
    {
        printf("1\n");
        while (2)
        {
            printf("2\n");
            while (3)
            {
                printf("3\n");
                goto A;
            }

        }
        
    }

A:
    printf("循环结束");

在这里插入图片描述
我们用图来解释一下整个的流程。
在这里插入图片描述
我们会发现,无论goto在多少个循环的内部,都能直接跳到标记的位置。所以当我们身处多个循环时,goto语句要比break更好用。但是!在日后的开发工作中,不建议使用goto语句,容易造成混乱!


总结

今天我们学的主要是跳出循环时,所用的转折语句。转折语句分为三种:break,continue,goto。三种转折语句的应用场景和语法各不相同,希望大家能够灵活的使用。
前途很远,也很暗,然而不要怕,不怕的人面前才有路。
——鲁迅

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值