【C语言】分支语句和循环语句

简介: 大家好!我是保护小周ღ,本期为大家带来的是C语言的分支语句和循环语句,详细的介绍了 if()、 switch() 这两种分支语句,以及while()、do while ()、for(),三种循环语句,还有两个控制语句的用法:break和continue;保姆级讲述,包您一看就会,快来试试吧~

  image.gif编辑

 

大家好!我是保护小周ღ,本期为大家带来的是C语言分支语句循环语句,详细的介绍了 if()、 switch() 这两种分支语句,以及while()do while ()for(),三种循环语句,还有两个控制语句的用法:breakcontinue;保姆级讲述包您一看就会,快来试试吧~

image.gif编辑

目录

一、什么是语句?

二、分支语句(选择语句)

2.1 if() 语句

2.1.1 if() 语句的语法结构

2.1.2 复合语句

2.2 switch 语句

2.2.1 switch 的语法结构

2.2.2 default子句

编辑

三、循环语句

3.1 while 语句

3.1.1 控制语句break;

3.1.2 控制语句 continue;

3.2 do while 语句

3.3 for 语句

3.3.1 不一样的 for


一、什么是语句?

C语言语句可以分为以下五类:

    1. 表达式语句
    2. 函数调用语句
    3. 控制语句
    4. 复合语句
    5. 空语句

    控制语句用于控制程序的执行流程,用来实现程序的各种结构方式。

    C语言是结构化的程序设计语言,几乎所有的C代码都是由以下三种结构组成的。

      1. 顺序结构
      2. 选择结构
      3. 循环结构

      C语言有9种控制语句,可以分为以下三类:

        1. 条件判断语句也叫分支语句:if 语句、switch 语句;
        2. 循环语句:for 语句、while 语句、do while 语句;
        3. 转向语句:break 语句、continue 语句、return 语句、goto 语句。

        二、分支语句(选择语句)

        2.1 if() 语句

        不知道大家有没有用过Excel 表里面的 if 函数,if(条件,表达式1,表达式2),如果条件成立,则执行表达式1,如果条件不成立,则执行表达式2。而且,if 语句里,也可以嵌套 if 语句。

        举个例子:

        image.gif编辑

        用通俗一点的话来讲就是,如果成绩<60分,执行表达式1,输出“不及格”,如果成绩>=60,就要执行表达式2,这时候表达式2是嵌套的 if 判断语句,所以又执行一下判断,此时要处理的数据范围是 >=60,如果,成绩小于80,此时数据范围就是60<=成绩<80,执行第二个if 语句表达式1,输出“良好”,如果成绩在>=60,的情况下且不小于80,则执行执行第二个if 语句表达式2,输出“优秀”

        C语言当中 if() 语句大同小异,逻辑是相似的,在 if() 语句中,条件:0为假,非0为真条件成立,为真,执行表达式1;条件不成立,为假,执行表达式2


        2.1.1 if() 语句的语法结构

        语法结构:

        if (表达式)

          语句

        if (表达式)

         语句1

        else

         语句2

        这个else可以理解为否则

        多分支(if的嵌套)

        if (表达式1)

          语句1

        else if (表达式2)

          语句2

        else

         语句3

        else的匹配:else是和它离的最近的 if 匹配的。

        例1:

        image.gif编辑

        我们还可以这样写:

        image.gif编辑

        例2:经典的 if语句的嵌套

        image.gif编辑

        给大家解释一下:什么是复合语句,控制语句break;随后在循环语句中会给大家讲。


        2.1.2 复合语句

        如果条件成立,要执行多条语句,则使用复合语句,这里的一对 { } 就是一个代码块(复合)

        复合语句从形式上看是多个语句的组合,但在语法意义上它是一个整体,相当于一条语句,所以凡是可以用简单语句的地方都可以用复合语句来实现。


        作用:


        1、在程序设计中复合语句被看成是一条语句,而不是多条语句。


        2、在只能使用单条语句的地方可以执行多条指令。


        3、这里只能写一条指令,而用复合语句就可以满足一条指令的限制,而执行多条指令。

         


        举个例子:

        如果你好好学习,以后可以找到好offer,走上人生巅峰,如果你不好好学习,毕业就等于失业,此时如果你家里有80套房子,可以继承家业,否则回家种地吧。

        image.gif编辑

        首先博主跟大家介绍一个函数 strcmp() 把这个函数弄明白了,咱们举得例子才能玩的转。

        strcmp,是C/C++的库函数,在string.h 头文件里,作用是比较两个字符串

        strcmp()函数一般形势:strcmp(字符串1,字符串2);

        设这两个字符串为 str1,str2,则strcmp(str1,str2);

        若str1 ==str2,则函数返回值为0;

        若str1 < str2(字符串长度),则函数返回值为负数;

        若str1 > str2,则函数返回值为正数;

        例3: 利用多分支判断,(if嵌套)

        image.gif编辑


        2.2 switch 语句

        switch语句也是一种分支语句。 常常用于多分支的情况。

        switch 有一种说法是叫它开关函数,为什么叫开关函数呢,因为他的执行流程就像遍历一排开关,找到符合条件的开关,就打开开关,通电了之后对应的灯就亮了(语句就执行了),但是呢,如果我们不想继续遍历开关了,在灯使用完之后,就要把整个电路断电,break;终止。如果没有找到符合条件的开关,我们也有相应的操作,这个之后讲。

        switch 语句中的break则是跳出函数体,不继续执行该case后面的语句(默认继续执行)。

        2.2.1 switch 的语法结构

        image.gif编辑

        switch()里面的表达式必须是整型表达式。通俗一点可以理解为,整个表达式的结果为整型。

        case 后面的必须是整型常量表达式,1,2,3等,不允许是变量。

        switch() 语句支持嵌套,就像 if 语句一样,case 执行语句时语句可以是另一个switch()语句。

        switch()语句中,break;就像是灵魂,搭配break使用才能实现真正的分支;

        举个例子:

        实现输入一个成绩,判断成绩的级别,不及格,及格,良好,优秀,非常优秀。

        #include<stdio.h>intmain()
        {
        intreport=0;//成绩printf("请输入一个成绩判断级别:");
        scanf("%d",&report);
        //那么怎么我们怎么设置条件呢,switch (report/10)//整型表达式,“条件”    {
        case1: 
        case2: 
        case3:         
        case4: 
        case5: printf("成绩不及格\n下次好好努力"); 
        break;//只有遇到break;以后case 判断才会停下来,默认是继续执行的//所以case 1:case 2:……可以跟case 5:共用一个printf(),case6:
        case7: printf("已及格,成绩良好,继续努力");
        break;
        case8: printf("已及格,成绩优秀,继续保持");
        break;
        case9: 
        //这个有问题,因为101,102,103,等数字/10之后都变成10了,满分则是100分,所以switch()函数也有不方便的地方。//使用if语句,我们就则可以精准的控制数据范围。case10:printf("已及格,成绩非常优秀");
            }
        return0;
        }

        image.gif

        image.gif编辑

        是不是有点复杂,我感觉比 if 语句实现相同的功能还要麻烦。


        2.2.2 default子句

        如果表达的值与所有的case标签的值都不匹配怎么办?程序也并没有错,只是所有case语句都会跳过,什么也不会发生,如果我们需要在所有case标签没有匹配值的情况下给出一些提示,

        例如:输入错误,case 不匹配,请重新输入。就给人一个提示。

        这个时候我们就可以使用 default:

        image.gif编辑

        default:子句的位置,可以写在任何一个case标签可以出现的位置,也在开头也可以,最后也可以,当 switch 表达式的值不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。

        每个switch 语句中最好写入一条default 子句,最好在子句后面再加上一个break;



        三、循环语句

        我们通过学习了 if 语句知道了,当条件满足时,执行 if 后面的“语句”。但是语句只能执行一次。

        我们生活中有很多事情需要我们重复判断执行,那在程序中我们应该怎么办呢?

        C语言中给我们引入了 while,do while ,for  语句可以实现循环。

        关于循环语句,打个比方,就像是汽车上的轮胎,你挂挡、给油,发动机打火,轮胎就可以一直重复的旋转(循环)。当然想让车走什么路,去哪里,干什么,取决于开车的人,轮子老老实实的转。

        当你过个马路等红绿灯停下来时,离合,空挡、踩刹车,发动机都不需要熄火,绿灯亮,挂挡、给油车就可以直接跑,轮子继续转(continue),

        哎呀,开着开着你发现轮胎居然漏气了,你想了一下,门前有一堆碎玻璃,应该给轮胎划了一道口子,导致呢轮子转着转着就漏气了,为了保证安全,你就停车熄火了(break

        如果你已经到达目的地,不想让轮子转了,刹车、发动机熄火,轮子就不转了(条件终止循环 或break;

        当然你也可以让车子不停下来,一直跑,轮胎一直转,会有什么结果?(死循环

        最后呢,油没了,车子就不跑了,轮子就不转了。(内存耗尽,程序挂掉


        3.1 while 语句

        while 语句的语法结构:

        while(表达式)

        循环语句;

        while()里面的表达式往往是循环的终止条件,条件成立为真,不成立为假,0为假,非0为真。

        关于终止循环我们也可以使用控制语句break;来实现。

        循环语句,我们可以使用复合语句,达到循环一段程序的目的。


        例1:

        image.gif编辑

        我们还可以这样写:

        image.gif编辑

        break就是中止的意思,常常用来终止循环,但是外层如果还有循环,是不能跳出外层循环范围的。只能终止包含break的循环


        例2://在屏幕上打印1-10的数字。

        image.gif编辑


        3.1.1 控制语句break;

        break就是中止的意思,常常用来终止循环,但是外层如果还有循环,是不能跳出外层循环范围的。只能终止包含break的循环,switch中的break则是跳出函数体,不继续执行该case后面的语句(默认继续执行)。break 语句终止最近的封闭 do while、 for、 switch, while 语句的执行。循环中的break是用于永久终止循环的。

        image.gif编辑

        这段代码的含义就是循环打印1,2,3,4,5这五个数,打印5次。

        我们把内部循环加入break;试一试;

        image.gif编辑


        3.1.2 控制语句 continue;

        continue 在while循环中的作用就是: continue 是用于终止本次循环的(一次),也就是本次循环中continue 后边的代码不会再执行, 而是直接跳转到while语句的判断部分,条件成立,继续循环,条件不成立,就终止循环。

        例1:

        image.gif编辑

        由上例可知,当 i 等于3 的时候 if 语句条件成立,执行了continue,跳出本次循环,continue 后边的代码没有再执行了。所以没有打印 3。但是跳出本次循环后,循环条件成立,还是继续执行了循环。直到循环条件不成立为止。


        例2:

        image.gif编辑

        为什么这次 3 后面的数没有打印呢,还是相同的道理, 当i 等于3时,if 语句条件成立执了continue; 跳出来本次循环,所以后面的 i 没有执行自增所以 i 又以 3的值重复循环,然后跳出循环,结果陷入了死循环,所以 3 后面的值没有打印。这一点大家一定要注意。


        3.2 do while 语句

        这个一看啊,就是while的亲戚,用法也八九不离十,咱就不多介绍了,

        do while 就一句话,不管三七二十一,先执行一次循环,再来判断条件是否成立。

        所以使用do while 根据实际使用的场景,不经常使用。

        image.gif编辑

        其他的用法跟 while()差不了多少,就是可以先执行一次程序,再判断要不要继续循环。


        3.3 for 语句

        最后一个了,咱们就干脆直接一点,关于for 语句,博主是很喜欢用的,经常在控制下标的时候使用,很方便。

        语法结构:

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

        循环语句;//同样可以是复合语句 { }

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

        表达式2:条件判断,用于判断循环的终止。

        表达式3:为调整部分,用于循环条件的调整,驱使循环结束。

        注意:三个表达式之间用分号(;)隔开

        文邹邹的,直接上代码感受:

        //使用for循环 在屏幕上打印1-10的数字。

        image.gif编辑

        三个表达式相信大家都能够理解。

        如果我们用 while 循环实现相同的功能,两个语句之间又有什么差距呢?

        image.gif编辑

        我们可以看出两个语句要实现相同的功能,同样需要 “三个表达式”,三个部分。

        我们可以根据个人爱好选择使用。实际当中 for 语句使用的最多。


        3.3.1 不一样的 for

        for 循环中的三个表达式——初始化部分,判断部分,调整部分,都可以省略。//不建议都省略

        for 使用多个变量控制循环,

        image.gif编辑


        //使用for循环 在屏幕上打印1-10的数字。

        image.gif编辑


        image.gif编辑


        至此,C语言的分支、循环语句的基本使用方法博主已经分享完了,大家可以自己动手敲敲代码,感受一下。希望对大家有所帮助。

        image.gif编辑

        本期收录于博主的专栏——C语言,适用于编程初学者,感兴趣的朋友们可以订阅,查看其它“C语言基础知识”。C语言_保护小周ღ的博客-CSDN博客

        感谢每一个观看本篇文章的朋友,更多精彩敬请期待:保护小周ღ  *★,°*:.☆( ̄▽ ̄)/$:*.°★*

        文章存在借鉴,如有侵权请联系修改删除!image.gif编辑

        相关文章
        |
        4月前
        |
        C语言
        初识C语言2——分支语句和循环语句
        初识C语言2——分支语句和循环语句
        87 5
        |
        23天前
        |
        C语言
        【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】
        本文档介绍了编程任务的详细内容,旨在运用枚举法求解硬币等额 - 循环控制语句(`for`、`while`)及跳转语句(`break`、`continue`)的使用。 - 循环嵌套语句的基本概念和应用,如双重`for`循环、`while`嵌套等。 3. **编程要求**:根据提示在指定区域内补充代码。 4. **测试说明**:平台将对编写的代码进行测试,并给出预期输出结果。 5. **通关代码**:提供完整的代码示例,帮助理解并完成任务。 6. **测试结果**:展示代码运行后的实际输出,验证正确性。 文档结构清晰,逐步引导读者掌握循环结构与嵌套的应用,最终实现硬币兑换的程序设计。
        49 19
        |
        23天前
        |
        算法 C语言
        【C语言程序设计——循环程序设计】求解最大公约数(头歌实践教学平台习题)【合集】
        采用欧几里得算法(EuclideanAlgorithm)求解两个正整数的最大公约数。的最大公约数,然后检查最大公约数是否大于1。如果是,就返回1,表示。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。作为新的参数传递进去。这个递归过程会不断进行,直到。有除1以外的公约数;变为0,此时就找到了最大公约数。开始你的任务吧,祝你成功!是否为0,如果是,那么。就是最大公约数,直接返回。
        71 18
        |
        23天前
        |
        Serverless C语言
        【C语言程序设计——循环程序设计】利用循环求数值 x 的平方根(头歌实践教学平台习题)【合集】
        根据提示在右侧编辑器Begin--End之间的区域内补充必要的代码,求解出数值x的平方根;运用迭代公式,编写一个循环程序,求解出数值x的平方根。注意:不能直接用平方根公式/函数求解本题!开始你的任务吧,祝你成功!​ 相关知识 求平方根的迭代公式 绝对值函数fabs() 循环语句 一、求平方根的迭代公式 1.原理 在C语言中,求一个数的平方根可以使用牛顿迭代法。对于方程(为要求平方根的数),设是的第n次近似值,牛顿迭代公式为。 其基本思想是从一个初始近似值开始,通过不断迭代这个公式,使得越来越接近。
        49 18
        |
        23天前
        |
        C语言
        【C语言程序设计——循环程序设计】统计海军鸣放礼炮声数量(头歌实践教学平台习题)【合集】
        有A、B、C三艘军舰同时开始鸣放礼炮各21响。已知A舰每隔5秒1次,B舰每隔6秒放1次,C舰每隔7秒放1次。编程计算观众总共听到几次礼炮声。根据提示,在右侧编辑器Begin--End之间的区域内补充必要的代码。开始你的任务吧,祝你成功!
        48 13
        |
        23天前
        |
        存储 C语言
        【C语言程序设计——循环程序设计】利用数列的累加和求 sinx(头歌实践教学平台习题)【合集】
        项的累加和,一般会使用循环结构,在每次循环中计算出当前项的值(可能基于通项公式或者递推关系),然后累加到一个用于存储累加和的变量中。在C语言中推导数列中的某一项,通常需要依据数列给定的通项公式或者前后项之间的递推关系来实现。例如,对于一个简单的等差数列,其通项公式为。的级数,其每一项之间存在特定的递推关系(后项的分子是其前项的分子乘上。,计算sinx的值,直到最后一项的绝对值小于。为项数),就可以通过代码来计算出指定项的值。对于更复杂的数列,像题目中涉及的用于近似计算。开始你的任务吧,祝你成功!
        35 6
        |
        23天前
        |
        C语言
        【C语言程序设计——循环程序设计】鸡兔同笼问题(头歌实践教学平台习题)【合集】
        本教程介绍了循环控制和跳转语句的使用,包括 `for`、`while` 和 `do-while` 循环,以及 `break` 和 `continue` 语句。通过示例代码详细讲解了这些语句的应用场景,并展示了如何使用循环嵌套解决复杂问题,如计算最大公因数和模拟游戏关卡选择。最后,通过鸡兔同笼问题演示了穷举法编程的实际应用。文中还提供了编程要求、测试说明及通关代码,帮助读者掌握相关知识并完成任务。 任务描述:根据给定条件,编写程序计算鸡和兔的数量。鸡有1个头2只脚,兔子有1个头4只脚。
        46 5
        |
        4月前
        |
        C语言
        【c语言】分支语句
        C语言通过三种基本结构——顺序、选择和循环,构建复杂的程序逻辑。本文主要介绍了C语言的选择结构,即if-else语句及其变体,包括简单的if语句、if-else组合、else if多分支判断、嵌套if以及解决悬空else问题的方法。此外,还详细讲解了逻辑运算符和关系运算符的使用,以及如何利用条件操作符简化逻辑判断。最后,文章对比了if-else与switch语句在实现多分支逻辑时的应用,并解释了switch语句中的break和default关键字的作用。
        52 8
        |
        4月前
        |
        C语言
        【c语言】循环语句
        循环结构是C语言中用于简化重复操作的重要工具,主要包括while循环、do-while循环和for循环。while循环是最基本的形式,通过不断检查条件来决定是否继续执行循环体。do-while循环则先执行循环体,再检查条件,至少执行一次。for循环逻辑更复杂,但使用频率最高,适合初始化、条件判断和更新变量的集中管理。此外,循环中还可以使用break和continue语句来控制循环的提前终止或跳过当前迭代。最后,循环可以嵌套使用,解决更复杂的问题,如查找特定范围内的素数。
        59 6
        |
        4月前
        |
        Serverless C语言
        C语言控制语句:分支、循环和转向
        C语言控制语句:分支、循环和转向

        热门文章

        最新文章