C语言分支和循环语句(二)

简介: 笔记

break和continue


当我们在循环中使用break之后


8.png

9.png

原本是打印1-10,但是使用break之后只打印了1-4,这是因为进入while循环后有一个if(i==5),这里时判断i是否为5,若为5则执行break语句,当i==5时,执行了break语句,之后就再没打印数字,这是因为break语句的作用是跳出当前循环


当我们在循环中使用continue之后

10.png

此时光标还在闪

11.png

这里当使用了continue之后,打印;1-4,未使用continue打印5,这是因为未使用continue时,有一个判断条件(i==5)判断i是否等于5,此时若i等于5,才进行打印,使用continue之后,程序会自动跳转到while()然后往下进行,当再一次遇到continue之后,仍然跳到while然后接着往下进行,所以此时的i永远等于5


for循环


for(表达式1; 表达式2; 表达式3)


循环语句;


表达式1 表达式1为初始化部分,用于初始化循环变量的。


表达式2 表达式2为条件判断部分,用于判断循环时候终止。


表达式3 表达式3为调整部分,用于循环条件的调整。


用for循环打印1-10


for循环流程图

12.png

for循环一开始执行表达式1.然后再对表达式2进行判断,若二为真执行循环语句,然后执行表达式三,知道表达式2为假停止循环

13.png

continue在for循环中的作用

15.png


在for语句中使用continue之后,当语句执行了continue后,程序会接着执行表达式3


break在for循环中的作用

16.png


在for语句中使用continue之后,当语句执行了break后,程序会直接跳出for循环for循环特点

for循环可省略表达式1,2,3,但是当表达式2省略后,表达式2条件默认为恒成立,像下图一样会进入死循环。

17.png

for循环也可在语句1建立变量,并对其赋值,但一般不建议采用这种方式使用for循环

18.png

for循环避雷

19.png


#include <stdio.h>
    int main()
    {
        int i = 0;
        int k = 0;
        for (i = 0, k = 0; k = 0; i++, k++)
            k++;
        return 0;
    }

此程序不会进入for循环,因为表达式2为一个赋值语句而不是判断语句,将0赋给k,k此时为假,所以程序永远不会进入for循环


do...while()循环


do


{


  循环语句;


}while(表达式);

20.png

do...while循环是先执行循环内的语句,然后再对条件进行判断,若条件为真,则继续执行循环,否则跳出循环

21.png

continue在do...while中的作用

22.png


当i等于5时,执行continue语句,此时程序会一直执行if(i==5)和continue,所以此时光标一直在闪烁


break在do...while中的作用

此时4后面的光标停止闪烁,说明程序执行完毕,当i==5时,执行break,程序会直接跳出循环

23.png

goto语句

C语言中提供了可以随意滥用的 goto语句和标记跳转的标号。 从理论上 goto语句是没有必要的,实践中没有goto语句也可以很容易的写出代码。 但是某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程。 例如:一次跳出两层或多层循环。 多层循环这种情况使用break是达不到目的的。它只能从最内层循环退出到上一层的循环。


goto语句是语句在执行时,遇到goto语句之后,会自动跳转到goto语句所指示的地方,程序接着再往下执行,一下是goto语句的正确使用方法


for(...)
    for(...)
   {
        for(...)
       {
            if(disaster)
                goto error;
       }
   }
error:
 if(disaster)
         // 处理错误情况

举例

我们在电脑中找到命令提示符,并输入shutdown -s -t 60,含义为电脑在这条语句执行后开始60s倒计时关机,当再次输入shutdown -a时,会取消关机命令

24.png

但是goto语句具有一定的局限性,我们尽量少使用goto语句,用其他语句来代替goto语句,stdlib.h是system的头文件,strcmp的头文件是string.h


#include <stdio.h>
#include <stdlib.h>
int main()
{
    char input[10] = {0};
    system("shutdown -s -t 60");
    while(1)
   {
        printf("电脑将在1分钟内关机,如果输入:我是猪,就取消关机!\n请输入:>");
        scanf("%s", input);
        if(0 == strcmp(input, "我是猪"))
       {
            system("shutdown -a");
            break;
       }
   }
    return 0;
}

 25.png


相关文章
|
14天前
|
C语言 数据安全/隐私保护
C语言初阶②(分支语句和循环语句)编程练习
C语言初阶②(分支语句和循环语句)编程练习
29 1
|
5天前
|
C语言
C语言中的循环控制结构与循环语句详解
C语言中的循环控制结构与循环语句详解
15 0
|
6天前
|
编译器 C语言
C语言(3)----分支和循坏以及操作符
C语言(3)----分支和循坏以及操作符
15 1
|
6天前
|
C语言
C语言分支与循环
C语言分支与循环
|
6天前
|
算法 搜索推荐 C语言
C语言循环语句的深入探索与应用
C语言循环语句的深入探索与应用
15 0
|
7天前
|
机器学习/深度学习 C语言
C语言的起点——分支和循环
C语言的起点——分支和循环
13 0
|
10天前
|
C语言 数据安全/隐私保护
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
20 0
|
10天前
|
编译器 C语言 C++
【C语言】分支和循环 ---- if、switch、while、for、goto语句, 理解getchar和putchar函数
【C语言】分支和循环 ---- if、switch、while、for、goto语句, 理解getchar和putchar函数
20 0
|
13天前
|
程序员 C语言
C语言程序设计——循环语句
C语言程序设计——循环语句
|
14天前
|
C语言
C语言——分支,循环语句
C语言——分支,循环语句
20 0