1、C语言语句分类
1)表达式语句
2)函数调用语句
3)控制语句
4)复合语句
5)空语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言有九种控制语句。控制语句可分成以下三类
1)条件判断语句也叫分支语句:if语句、switch语句;
2)循环执行语句:do while语句、while语句、for语句;
3)转向语句:break语句、goto语句、continue语句、return语句。
2、分支结构之简单if语句
简单的if-else语句的基本结构,语义是如果表达式的值为真,则执行代码块1,否则执行代码块2。
注意:
1)一对 { } 就是一个代码块。
2)适当的使用{}可以使代码的逻辑更加清楚。
3)代码风格很重要。
4)左侧为常量,右侧为变量,代码的书写风格更好。
5)else的匹配,else是和它离的最近的if匹配的。
6)if()后面没有分号,直接写{},else后面也没有分号,直接写{}。
例
int num = 1;
if (5 == num)
//= 赋值;== 判断相等
//左侧为常量,右侧为变量,不能因为少些等号 =,而把num赋值给5
//适当的使用{}代码的书写风格更好
{
printf("hello world\n");
}
3、分支结构之多重if-else语句
C语言中多重if-else语句,语义是:依次判断表达式的值,当出现某个值为真时,则执行对应代码块,否则执行代码块n。
注意:
1)当某一条件为真的时候,则不会向下执行该分支结构的其他语句。
2)存在优先级的差异,从上到下优先级由高到低。
4、分支结构之嵌套if-else语句
C语言中嵌套if-else语句。嵌套if-else语句的意思,就是在if-else语句中,再写if-else语句。
5、分支结构之switch语句
switch语句也是一种分支语句。常常用于多分支的情况。
switch语句时还应注意以下几点:
1)在case后的各常量表达式的值不能相同,否则会出现错误。
2)在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。编程好习惯在最后一个case语句的后面加上一条 break语句。
3)break语句的实际效果是把语句列表划分为不同的分支部分。
4)switch后面的表达式语句只能是整型或者字符类型。
5)在case后,允许有多个语句,可以不用{}括起来。
6)各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
7)default子句可以省略不用。
break语句的实际效果是把语句列表划分为不同的分支部分。
如果表达的值与所有的case标签的值都不匹配怎么办?
其实也没什么,结果就是所有的语句都被跳过而已。程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误。
但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
可以在语句列表中增加一条default子句。
把标签default:; 写在任何一个case标签可以出现的位置。
当switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。但是它可以出现在语句列表的任何位置,而且语句流会像执行一个case标签一样执行default子句。