C语言是结构化的语言,这里的结构指的是顺序结构、选择结构、循环结构。我们可以使用 if、switch实现分支结构,使用 for、while、do while实现循环结构。
一 if 语句
if 语句的语法形式如下:
if (表达式)
语句
表达式为真时,则语句执行。表达式不成立,则语句不执行。在C语言中,0为假,非0为真,也就是表达式结果如果是0,则语句不执行,表达式的结构如果不是0,则语句执行。
if......else......语句的语法形式如下:
if (表达式)
语句1;
else
语句2;
默认在 if 和 else 语句中默认都只控制一条语句。
嵌套if
在 if else 语句中,else 可以与另一个 if 语句连用,构成多重判断。 如果有多个 if 和 else ,可以记住这样一条规则,else总是跟最接近的 if 匹配。
二 关系操作符
C语言用于比较的表达式,称为 关系表达式,里面使用的运算符就称为 关系运算符。主要有下面六个:< 小于运算符 <= 小于或等于运算符 == 等于运算符 >=大于等于运算符 > 大于运算符 != 不等于运算符
下面是一些例子
a < b
a <= b
a == b
a >= b
a > b
a != b
关系表达式通常返回0或1,表示真假。 关系表达式常用于 if 或 while 结构。
注意
1 相等运算符 == 和赋值运算符 = 是两个不一样的运算符,当一个常量和一个变量比较相等的时候, 建议将常量放在 == 的左边。
2 多个关系运算符 不宜连用。
3 虽然然关系运算符可以用来比较浮点数,但是比较浮点数时,尽量使用< 和 >。因为浮点数的舍入误差会导致在逻辑上应该相等的两数却不相等。
4 不能用 关系运算符比较字符串。
二 条件操作符
条件操作符也叫三目操作符,需要接受三个操作数的。 形式如下:
exp1?exp2:exp3
条件操作符的运算逻辑是:如果exp1为真,exp2计算,计算的结果是整个表达式的结果,如果exp1为假,exp3计算,计算的结果是整个表达式的结果。
三 逻辑操作符
逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式,主要有下面三个运算符。
!逻辑取反运算符 (改变单个表达式的真假)
&& 逻辑与运算符,就是并且的意思 (两侧的表达式都为真,则为真,否则为假)双目操作符
|| 逻辑或运算符,就是或者的意思(两侧至少有一个表达式为真,则为真,否则为假)双目操作符
C语言逻辑运算符还有一个特点,它总是先对左侧的表达式求值,再对右侧的表达式求值,如果左边表达式满足逻辑运算符的条件,就不再对右边表达式求值,这种情况称为短路。
四 swich 语句
swich 语句是一种特殊的if....else结构,用于判断条件有多个结果的情况。
swich(expression){
case value1:statement
case value2:statement
defalut:statement
}
根据表达式的值,执行相应的case分支,如果找不到值,就执行default 语句。注意 switch 后的expression 必须是整型表达式,case后的值,必须是整型常量表达式。case和后边的数字之间必须要有空格,每一个case语句中的代码执行完成后,需要加上break,才能跳出这个switch 语句。字符类型也是归类到整型里边,因为字符的本质是ASCII码值,这个值是整数。
五 while 循环
C语言提供三种循环语句 while、for 、do while ,接下来介绍while语句。
while(expression)
statement
程序实例中的expression都使用关系表达式,也就是说,expression是值之间的比较,可以使用任何表达式。如果expression为真(或者更一般地说,非零),执行statement部分一次,然后再次判断expression。在expression为假(0)之前,循环的判断和执行一直重复进行。每次循环都被称为一次迭代。
六 for 循环
for 循环是三种语句中使用最多的。 for 循环的语法形式如下:
for(表达式1;表达式2;表达式3)
语句;
表达式1用于循环变量的初始化,表达式2用于循环结束条件的判断,表达式3用于循环变量的调整。首先执行表达式1初始化循环变量,接下来就是执行表达式2的判断部分,表达式2的结果如果等于0,则循环结束;如果表达式2的结果!=0则执行循环语句,循环语句执行完后,再去执行表达式3,调整循环变量,然后再去表达式2的地方执行判断,表达式2的结果是否为0,决定循环是否继续。整个循环的过程中,表达式1初始化部分只被执行1次,剩下的就是表达式2、循环语句、表达式3再循环。
七 do while 循环
do
语句;
while(表达式);
while 和 for 这两种循环都是先判断,条件如果满足就进入循环,执行循环语句,如果不满足就跳出循环;而 do while 循环则是先直接进入循环体,执行循环语句,然后再执行 while 的判断表达式,表达式为真,就会进行下一次,表达式为假,则不再继续循环。
八 转向语句 (break、continue)
在循环执行的过程中,如果某些状况发生的时候,需要提前中止循环,这是非常常见的现象,C语言中提供了 break 和 continue 两个关键字,就是应用到循环中的。break 的作用是用于永久的终止循环,只要break 被执行,直接就会跳出循环,继续往后执行。continue 的作用是跳过本次循环中continue 后边的代码,在 for 循环和 while 循环 中有所差异的。
C语言提供了一种非常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同一个函数内跳转到设置好的标号处。goto语句如果使用不当,就会导致在函数内部随意乱跳转,打乱程序的执行流程,所以建议尽量不使用,但goto语句也不是一无是处,for循环提前退出要使用break,一个break只能跳出一层for循环,如果三层循环嵌套就得使用三个break才能跳出循环,所以这种情况下使用goto语句就十分快捷。