引文
通过学习,我们会发现C语言是与生活紧密相连的,生活中的任何事件都可以概括为:顺序;分支(选择);循环。所以C语言可以解决我们生活中遇到的大多数问题。顺序就是从上到下的逻辑顺序,是最基本的C语言执行语句,分支语句一般是 if 语句, switch语句。循环语句就比较多有 while循环,for 循环,do-while 循环。还有一系列的配套语句,才能使语句正常编译。
一,分支语句(选择结构)
1,if 语句
(1)简单的 if 语句
if语句功能:计算并判断条件表达式的值,若为真(true)执行 if 后面的语句组1,然后运行 if 语句下面的程序;若条件表达式的值为假(false),则运行语句组2,执行流程如下图:
在C语言中,用非0表示真,0表示假。语句组可以是一条语句,这时可以不用{ };若语句组为多条语句时,需要用{ }括起来,表示一个整体。
(2)多分支 if 语句
与简单的 if 语句类似,但是所包含的分支较多,功能:判断条件 S (1,2......n+1),若为真,执行语句 S 并结束分支 if 语句运行,若为假,继续下一判断条件;若所有判断条件均不成立,执行语句 n+1。
可见,多分支语句运行时,即使有多个条件满足,也只能执行最先满足条件的那一个分支。
(3)if 语句的嵌套
当问题比较复杂,判断条件比较多时,可能 if 或 else 语句模块中也使用到 if 语句,称这种使用方法为 if 语句的嵌套。
2,switch 语句
C语言提供了专门是议案多分支结构的 switch 语句,该语句根据测试表达式的值决定执行分支结构中的哪一个分支。语句结构类似数学上的分情况讨论。case 用来表示某一种情况。
语句中的 break 语句为可选项;测试表达式的类型要求与常量表达式类型一致,一般为整型或字符型;break 语句的功能是结束switch语句的运行。
switch 语句执行流程:
先计算 switch 后测试表达式的值,然后自上而而下顺序判断哪个case常量表达式的值与测试表达式的值相等,相等时的就执行对应的语句组;
若该语句组中没有执行到break语句,就直接执行下一个语句组,直到执行到break语句时停止 switch 语句的执行,退出switch语句;
若没有与测试表达式的值相等的常量表达式,则执行 default 中的语句组 X 。当每一个语句组都有break语句时,switch语句的执行流程如图:
二,关系表达式与逻辑表达式
1,关系运算符
用来对两个数值进行比较的比较运算符,C语言提供6种运算关系:
(1) < 小于 (2)<= 小于等于
(3) > 大于 (4)>= 大于等于
(5)== 等于 (6)!= 不等于
2,关系表达式
用关系运算符将两个数值或数值表达式连接起来的式子。
关系表达式成立,返回真值:1
关系表达式成立,返回假值:0
3,3种逻辑运算符
并且:&&(逻辑与)
或者: || (逻辑或)
不 : !(逻辑非)
三,循环结构
1,while 循环
while语句最简单的情况为循环体只有一个语句:
其中表达式是循环条件,语句块为循环体。其执行过程是:先计算while 后面圆括号内表达式的值,如果其值为真(非0),则执行语句块(循环体),然后再计算while 后面圆括号内表达式的值,并重复上述过程,直到表达式的值为“假”(值为0)时,退出循环,并转入while后的下一语句去执行。
使用while 语句时,需注意如下几个问题:
(1) while 语句的特点是先判断表达式的值,然后根据表达式的值决定是否执行循环体中的语句,因此,如果表达式的值一开始就为 假”,则循环体将一次也不执行。
(2)当循环体由多个语句组成时,必须用左、 右花括号括起来,使其形成复合语句,即语句块。
(3)为了使循环最终能够结束,而不至于使循环体语句无穷执行,即产生“死循环”。因此,随着循环体的重复执行,条件语句的值可以由真变成假,进而跳出循环。
2,do-while 循环
do是C语言的关键字,必须与while联合使用。
do-while 循环由 do 开始,用while 结束。必须注意的是:在 while(表达式)后的“;”不可丢,它表示do-while语句的结束。while 后一对圆打括号中的表达式,可以是C语言中任意合法的表达式。由它控制循环是否执行。
按语法,在do 和 while 之间的循环体只能是一条可执行语句。若循环体内需要多个语句,应该用大括号括起来,组成复合语句,即语句块。
do-while 循环的执行过程:
(1)执行 do 后面循环体中的语句。
(2)计算while后面一对圆括号中表达式(循环条件)的值。当值为非零时,转会执行步骤1;当值为零时,执行步骤(3)。
(3)退出do-while 循环。由do-while构成的循环与while循环十分相似,它们之间的主要区别是:while循环结构的判断控制出现在循环体之前,只有当while后面表达式的值为非零时,才能执行环体:在do-while构成的循环结构中,总是先执行一次循环体,然后再求表达式的值,因此,无论表达式的值是零还是非零,循环体至少要被执行一次。
和while 循环一样,在do-while循环体中,一定要有能使while后表达式的值变为0的操作,否则,循环将会无限制的进行下去。
3,for 循环
(1).for 语句的一般形式
for语句构成的循环通常称为for循环。for循环的一般形式如下:
for (表达式1;表达式2;表达式3)
循环体;
for是C语言的关键字,其后的圆括号中通常含有3个表达式,各表达式之间用“;”隔开。这三个表达式可以是任意表达式,通常主要用于for循环的控制。紧跟在 for(...)之后的循环体,在语法上要求是一条语句,若在循环体内需要多条语句,应该用大括号括起来,形成复合语句,即语句块。
for循环执行过程:
(1)计算表达式1。
(2)计算表达式2,若其值为真(非零),则转步骤(3);若其值为假(零),则转步骤(5)。
(3)执行一次循环体。
(4)计算“表达式3”,然后转向步骤2.(5)结束循环。
(2),for 语句的几种灵活使用方式
for 语句的使用十分灵活,for语句一般形式的灵活使用衍生出来多种其他形式,详细阐述如下:
(1) for(;表达式2;表达式3)
for 语句一般形式中的“表达式1”可以省略,此时应在for语句之间前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。如
int i=1;
for( ;i<=10;i++)
printf(“%d“,i);
执行时,跳过“求解表达式1”这一步,其他不变。
(2)for(表达式1;;表达式3)
for 语句一般形式中的“表达式2”可以省略,如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真。
(3)for(表达式1;表达式2;)
for 语句一般形式中的表达式3也可以省略,但此时应把改变循环变量值的命令放置到循环体中,以保证循环能正常结束。如:
for(int i=1;i<=10;) {
printf(“%d“,i); i++; }
四,go to 语句
C语言提供了一种非常特别的语法,就是 go to 语句和跳转标号,go to 语句可以实现在同一个函数内跳转到设置好的标号处。