迟来的分支语句

简介: 目录1,什么是语句? 1.1表达式语句 1.2函数调用语句 1.3控制语句 1.4复合语句 1.5空语句2,分支语句 2.1 if语句 2.1.1悬空else 2.2 switch语句 2.2.1switch语句中的break 2.2.2default子句

1,什么是语句?

       1.1表达式语句

诸如int a = 10;        int b = 20;       int c = 0;       c = a + b;之类的语句(由表达式加上";"组成。) 其一般形式为:表达式;执行表达式语句就是计算表达式的值和执行副作用。例如:1,x=y+z; a=520;(赋值语句; 2,i++;自增1语句,i值增1。(先运算i再加1) 3,++i;(先增1后运算)等等;


       1.2函数调用语句

1:函数作为表达式中的一项出现在表达式中 如“z=max(x,y)”2:函数作为一个单独的语句 如               “printf("%d",a);”  3:函数作为调用另一个函数时的实参  如“printf("%d",max(x,y));”


       1.3控制语句

控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语 言有九种控制语句。 可分成以下三类:1. 条件判断语句也叫分支语句:if语句、switch语句;  2. 循环执行语句:do while语句、while语句、for语句;3. 转向语句:break语句、goto语句,continue语句、return语句。


       1.4复合语句

复合语句简称为语句块,它使用大括号把许多语句和声明组合到一起,形成单条语句。语句块与简单的语句不同,语句块不用分号当作结尾。

用括号{}括起来组成的一个语句称复合语句。 在程序中应把复合语句看成是单条语句,而不是多条语句,例如:

image.png

       1.5空语句

image.png

2,分支语句

        2.1  if语句

image.png


image.png


解释一下: 如果表达式的结果为真,则语句执行。 在C语言中 0表示假,非0表示真。


               image.png        

使用if语句时,即使语句列表只有一行,也尽量写出{}   !!!!不为别的,看起来舒服                  

                   2.1.1悬空else

当年写了类似这样的代码时


image.png 


改正:       //适当的使用{}可以使代码的逻辑更加清楚。 //代码风格很重要                   image.png由此可见:else的匹配:else是和它离的最近的if匹配的。                

        2.2  switch语句

switch语句也是一种分支语句。 常常用于多分支的情况。如果我们要输出周一到周日的话,可以选择用if else来完成,但是未免过于繁琐。例如      image.png

那我们写成 if...else if ...else if 的形式太复杂那我们就得有不一样的语法形式这就是switch 语句。

image.png

语句项:

image.png


综上所述,我们在输出周一到周日在采用switch语句时可采用以下代码:                                  image.png

但是此时就会出现一个非常严重的问题,当你在输入数值2时,理想状态下输出星期二,但是星期二到星期日的一并打印出来了,这并不是我们想要看到的结果。此时此刻我们就应该想到应该有这么一个东西可以在你输入数值后,打印相应的回复,并随即跳出语句,即我们想要的输出值。这就是switch的灵魂伴侣  break  !!(详解见下)

                   2.2.1switch语句中的break

在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。如: image.png                

image.png

此时此刻,我们不难发现,加入break后,当再次输入2时,只打印了星期2,即我们想要的回复。编程好习惯 :在最后一个 case 语句的后面加上一条 break语句。 (之所以这么写是可以避免出现在以前的最后一个 case 语句后面忘了添加 break语句)。

                   2.2.2default子句

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

image.png

相关文章
|
2月前
|
C语言
带你窥探分支和循环语句全貌——这一篇就够了
带你窥探分支和循环语句全貌——这一篇就够了
15693 1
|
2月前
|
C语言
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
爱上C语言:分支与循环(分支篇)多个if与if — else if区别
|
2月前
|
C语言
(保姆级)一篇搞懂分支语句
(保姆级)一篇搞懂分支语句
62 6
|
2月前
|
Python
[重学Python] Day1 变量+分支+循环
[重学Python] Day1 变量+分支+循环
42 3
|
12月前
学C的第六天(深入了解 分支语句 和 循环语句 )(2)
2.switch语句: switch语句也是一种分支语句,常常用于多分支的情况。 语法结构:
|
12月前
|
C语言
学C的第六天(深入了解 分支语句 和 循环语句 )(1)
C语言:结构化的程序设计语言,支持三种结构,顺序结构、选择结构、循环结构。生活中大大小小的事件基本都可以用这三种结构来描述,这是一种高度的抽象 什么是语句?
|
12月前
分支语句和循环语句(超详细保姆级,适合初学者)下
分支语句和循环语句(超详细保姆级,适合初学者)
42 0
|
12月前
|
C语言
分支语句和循环语句(超详细保姆级,适合初学者)上
分支语句和循环语句(超详细保姆级,适合初学者)
57 0
|
算法 C语言
C语言基础犄角旮旯的知识之分支与循环结构
C语言基础犄角旮旯的知识之分支与循环结构
|
机器学习/深度学习 算法 Linux
分支语句和循环语句(习题集)
分支语句和循环语句(习题集)
91 0
分支语句和循环语句(习题集)