这里写目录标题
(上一次文章的下篇过段时间补上,最近比较忙,见谅~)
一、if语句
1.if
表达式成立(为真),则语句执行,否则不执行
以该题为例,要求输入两个数并比较它们的大小,if语句中如果a>b,则执行输出a>b,否则不执行该输出。
2.else
表示出现除了if之外的其他情况,则执行,需要注意,else所匹配的if是距离其最近的那个if,写代码时注意分辨。
如上图例,当输入内容不是if中的情况,即不是age>=18时,将执行else中的语句,得到未成年。
3.分支中包含多条语句
上述中的if语句和else语句只能控制一条语句,当我们要if语句同时控制2条语句时,可用{ },else同理。
如图例,age>=18时,输出成年和可以随时玩王者。
4.嵌套if
在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断。
二、关系操作符
C语⾔⽤于⽐较的表达式,称为“关系表达式”(relational expression),⾥⾯使⽤的运算符就称
为“关系运算符”(relational?operator),主要有下⾯6个。
下图是一个较为典型的应用例子,要求我们输入三个数字,并将其从大到小排序。
值得注意的是,与日常生活中我们表达a<b<c不同,在c语言中需要用a<b&&b<c来表示。
三、条件操作符
条件操作符也叫三⽬操作符,需要接受三个操作数的,形式如下:
条件操作符的计算逻辑是:如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果exp1 为假, exp3 计算,计算的结果是整个表达式的结果。
四、逻辑操作符
1.逻辑取反运算符
!为逻辑取反运算符,可改变单个表达式的真假
如图所例,若flag为真,!flag为假,若flag为假,则!flag为真,故if语句中的!flag表示flag为假,执行if中的代码。
2.与运算符
&& 就是与运算符,也是并且的意思, && 是⼀个双⽬操作符,使⽤的⽅式是 a&&b , && 两边的表达式都是真的时候,整个表达式才为真,只要有⼀个是假,则整个表达式为假。
如上图例中,输出1000年-2000年中的闰年年份,就用到了&&运算符,表示该年份既能整除4,又不被100整除,即可满足闰年年份的条件。
3.或运算符
|| 就是或运算符,也就是或者的意思, || ?也是⼀个双⽬操作符,使⽤的⽅式是 a || b , || 两边的表达式只要有⼀个是真,整个表达式就是真,两边的表达式都为假的时候,才为假。
例如:假设⼀年中⽉份是12⽉或者1⽉或者2⽉是冬天,如何使⽤代码体现呢?
4.短路
C语⾔逻辑运算符还有⼀个特点,它总是先对左侧的表达式求值,再对右边的表达式求值,这个顺序是保证的。
如果左边的表达式满⾜逻辑运算符的条件,就不再对右边的表达式求值。这种情况称为“短路”。
如代码“if(month>=4&&month<=7)”左代码为month>=4,右代码为month<=7,当左代码month>=4的结果为0时,即使不判断右代码,整个表达式的结果也是0。
五、switch语句
除了if语句外,C语⾔还提供了 switch 语句来实现分⽀结构。switch 语句是⼀种特殊形式的 if…else 结构,⽤于判断条件有多个结果的情况。它把多重的 else if 改成更易⽤、可读性更好的形式。
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,就执⾏ default 分⽀。
需注意,switch 后的 expression 必须是整型表达式,case 后的值,必须是整形常量表达式。
1.if语句和switch语句的对比
if语句
Switch语句
需注意:
- case 和后边的数字之间必须有空格
- 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句,在 switch 语句中 break 语句是⾮常重要的,能实现真正的分⽀效果。
下面比较一下有无break的用法:
当我们回答今天星期几时,需要加上break,因为只需要输出某一天。
而当我们回答某一天是否为工作日时,可以适当去掉break,代码和输出如下图:
下期预告:循环(while循环、for循环、do-while循环)、break&continue、循环的嵌套、goto语句。