已知,C语言是结构化的程序设计语言,这里的结构指的是顺序结构,选择结构,循环结构。
我们可以使用if switch实现分支结构,使用for while do while实现循环结构。
[壹]分支
一.if语句
(1)if语句的语法形式:
if(表达式)
语句
表达式成立(为真),则语句执行;表达式不成立(为假),则语句不执行。
已知C语言中,0为假,非0表示真,也就是表达式的结果如果是0,则语句不执行;若表达式结果不为0,则语句执行。
例子:输入一个数,判断是否为偶数
当输入不是偶数时,如何使之能打印出东西来?
这时我们引入else语句:
(2) else语句的语法形式
if (表达式)
语句1
else
语句2
(3) if语句中包含多条语句
if和else默认只控制一条语句,当大于一条语句时,需要用大括号括起来
(4) 嵌套if
在if else语句中,else可以与另一个if语句连用,构成多重判断。
简化下
(5) 悬空else
else总是跟最接近的if匹配
二.关系操作符
>
<
>=
<=
==
!=
关系表达式通常返回1或0,表示真或假
如果一个变量和一个常量比较相等,建议把常量放在==左边,避免被赋值
多个关系操作符不宜连用
错误示例:
我们有幸采访到了if()是怎么分析的,下面有请它发言:
x<y<z
x=10,y=6,x<y,为真,0
0<z,为真,0
故能成功输出
三.条件操作符
也叫三目操作符,需要接受三个操作数,形式如下:
exp1 ? exp2 : exp3
表达式1 ①真
表达式2计算,表达式3不计算,表达式2的结果是整个表达式的结果。
②假
表达式2不计算,表达式3计算,表达式3的结果是整个表达式的结果。
四.逻辑操作符
(1)!逻辑取反运算符
(改变单个表达式的真假)
(2) && 与运算符,并且,
(两侧表达式都真才为真)
(3)|| 或运算符,或者,
(两侧表达式至少有一个为真就为真,同时为假才为假)
(4)短路
C语言逻辑运算符总先对左侧表达式求值,再对右侧表达式求值;故若左边的表达式满足逻辑运算符的条件,就不再对右边的表达式求值。这称为短路。
仅仅根据左操作数的结果就能知道整个表达式的结果,不再对右操作数进行计算的运算,称为短路求值。
①a&&b
a==0,右边不再计算
后置++先使用再加1,故0,右边不再计算
②a||b
a为真,右边不再计算
先用再加1,故0,a=1;前置++先加1再用,故3,b=3,为真,右边不再计算
五.switch语句
(1)switch语句的定义
一种特殊形式的if...else结构,用于判断条件有多个结果的情况。它把多重的else if改为更易用、可读性更高的形式。
(2) 语法形式
switch(expression)
{
case value 1:statement
case value 2:statement
default:statemen
}
switch后面必须是整型表达式(字符是以ASCII码的形式进行存储的,ASCII值是整数,字符属于整型家族)
case后面的值必须是整型常量表达式(字符不行)
switch语句中,case子句和default子句无要求顺序;通常default放最后
举个栗子: