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

02-26 1457阅读

1.什么是语句?

C 语句可分为以下五类:
  • 表达式语句:3+5;
  • 函数调用语句:printf("hehe\n");
  • 复合语句
  • 空语句: ;(需要一条语句,但这条语句什么都不做。)
  • 控制语句 控制语句 用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成, C 语言有九种控制语句。 可分成以下三类: (1)  条件判断语句也叫分支语句: if 语句、 switch 语句; (2)  循环执行语句: do while 语句、 while 语句、 for 语句; (3)  转向语句: break 语句、 goto 语句、 continue 语句、 return 语句。 下面让我们来讲解其中的几个语句。

    2.分支语句

    • if
    • switch

      (1)if语句

      • 语法结构

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

        • 代码演示

          单分支:如果年龄小于18岁,则打印未成年。 【C语言记】分支语句和循环语句双分支:如果年龄小于18岁,打印未成年,否则打印成年。 【C语言记】分支语句和循环语句【C语言记】分支语句和循环语句多分支:如果年龄小于18,打印少年;如果年龄大于等于18,小于30,打印青年;如果年龄大于等于30,小于50,打印中年,如果年龄大于等于50,小于80,打印老年,如果年龄大于等于80,打印老寿星。 【C语言记】分支语句和循环语句注意:if语句只能控制一条语句 【C语言记】分支语句和循环语句if语句后加{ }才能使两条语句都被if语句控制 【C语言记】分支语句和循环语句
          • 书写形式

            下面我们看一组代码

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

            它的结果是什么呐?是不是很多人都认为它的结果是haha。

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

            但它其实并没有输出结果,这是为什么?

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

            由此可见,书写形式的重要性,不好的书写形式容易引起误解,甚至错误。

            对比:

            • 【C语言记】分支语句和循环语句【C语言记】分支语句和循环语句代码2和代码4更好,逻辑更加清晰,不容易出错。
            • 练习

              判断一个数是否为奇数

              【C语言记】分支语句和循环语句(2)switch语句

              switch 语句也是一种分支语句。 常常用于多分支的情况。 比如: 输入 1 ,输出星期一 输入 2 ,输出星期二 输入 3 ,输出星期三 输入 4 ,输出星期四 输入 5 ,输出星期五 输入 6 ,输出星期六 输入 7 ,输出星期日 那我们写成 if...else if ...else if 的形式就太过复杂,我们就得有不一样的语法形式。 这就是 switch 语句。
              • 语法结构

                【C语言记】分支语句和循环语句
                • 代码演示

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

                  【C语言记】分支语句和循环语句如果想要输入3,输出星期三后就结束,则引入break。在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。 【C语言记】分支语句和循环语句

                  如果我们想要输入1-5,输出的是“weekday”; 输入6-7,输出“weekend”

                  所以我们的代码就应该这样实现了: 【C语言记】分支语句和循环语句 break 语句 的实际效果是把语句列表划分为不同的分支部分。 注意: 在最后一个 case 语句的后面加上一条 break 语句。 (之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break 语句)。

                  default子句

                  思考:如果表达的值与所有的 case 标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。 程序并不会终止,也不会报错,因为这种情况在C 中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢? 你可以在语句列表中增加一条 default 子句,把下面的标签 default: 写在任何一个 case 标签可以出现的位置。 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。 所以,每个 switch 语句中只能出现一条 default 子句。 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。

                  练习

                  下列代码的输出结果是什么? 【C语言记】分支语句和循环语句【C语言记】分支语句和循环语句switch(n)中n决定从哪个case进去

                  3.循环语句

                  • while
                  • for
                  • do while

                    (1)while循环

                    • 语法结构

                           当条件满足的情况下, if 语句后的语句执行,否则不执行。但是这个语句只会执行一次。 由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。 那我们怎么做呢? C 语言中给我们引入了: while 语句,可以实现循环。 【C语言记】分支语句和循环语句【C语言记】分支语句和循环语句
                      • 代码演示

                        在屏幕上打印 1-10 的数字。 【C语言记】分支语句和循环语句【C语言记】分支语句和循环语句
                        • while语句中的break和continue

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

                          i在等于1到4时均不等于5,因此不断循环;在i等于5时,遇到break,循环结束。 可见,break 在 while 循环中的作用: 其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。 所以:while中的break是用于永久终止循环的。 【C语言记】分支语句和循环语句【C语言记】分支语句和循环语句 可见,实例1中i被赋值1到4时,均不等于5,不断循环,在等于5时,遇见continue,则跳过了continue后面的代码,因此5不会被打印出来,但会不断循环,光标也在不断闪烁。 实例2中在i等于5时,遇到continue,跳过了后面的代码,因此5不会被打印出来,但i还是会不断加一,直到i=10时,i+1=11,终止循环。 因此,continue 在 while 循环中的作用就是: continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行, 而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
                          • 练习

                            输出1-100之间的奇数

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

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

                            (2)for循环

                            • 语法结构

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

                              表达式 1 表达式 1 为 初始化部分 ,用于初始化循环变量的。 表达式 2 表达式 2 为 条件判断部分 ,用于判断循环时候终止。 表达式 3 表达式 3 为 调整部分 ,用于循环条件的调整。
                              • 代码演示

                                使用 for 循环 在屏幕上打印 1-10 的数字 【C语言记】分支语句和循环语句

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

                                • for循环和while循环对比

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

                                  • for语句中的break和continue

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

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

                                    break在for循环中也是直接终止循环,只要遇到break,循环就直接结束。 在for循环中,如果遇到continue,会跳过continue后面的代码,直接去循环的调整部分。 和while循环中的continue有区别。
                                    • for语句的循环控制变量

                                      建议: 1. 不可在 for 循环体内修改循环变量,防止 for 循环失去控制。 2. 建议 for 语句的循环控制变量的取值采用 “ 前闭后开区间 ” 写法。 【C语言记】分支语句和循环语句
                                      • 一些for循环的变种

                                        代码1

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

                                        for 循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题。 代码2 【C语言记】分支语句和循环语句 代码3 【C语言记】分支语句和循环语句 代码4:使用多余一个变量控制循环

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

                                        练习

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

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

                                        由此可见,k=0是赋值,不是判断,赋值为0,即为假,不循环。

                                        (3)do ...while()循环

                                        语法结构

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

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

                                        代码演示

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

                                        do...while()语句中的break和continue

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

                                        【C语言记】分支语句和循环语句注意:do...while()中break和continue和在while循环中一模一样,break都是用于终止循环,continue是跳过本次循环后边的代码,直接去判断部分。

                                        4.转向语句

                                        goto语句

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

                                        语法结构

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

                                        一个关机程序

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

                                        而如果不适用 goto 语句,则可以使用循环: 【C语言记】分支语句和循环语句 拓展资源:自动关机_百度百科 以上就是我为大家讲解的所有语句,希望对大家有所帮助。如果其中有错误,也希望大家能够进行指正和建议,谢谢大家!
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]