if语句
语句结构
if (condition1 || condition2) {
// input the function
} else if (condition3 && condition4){
// input the function
} else {
// input the function
}
关系运算符
| 运算符 | 名称 | |
|---|---|---|
| < | 小于 | |
| <= | 小于或等于 | |
| > | 大于 | |
| >= | 大于或等于 | |
| == | 等于 | |
| != | 不等于 | |
| && | 表示“and” | |
倘若我在condition的位置上变成赋值语句,那会怎么样。
当赋0时,返回假;当赋除0以外的其他值时,返回真。
注意
- 无论如何,都要写
{},否则就会只运行if的下一行语句。 else的归属权:如果没有{},else只与最靠近它的,且没有else的if匹配。不看对齐。
嵌套判断
就像下面这样的
if (condition_1) {
if (condition_2) {
// to do
} else {
// to do
}
} else {
// to do
}
意思就是无论if的判断如何,还得要再执行一个if,那么这就是嵌套
else总是和最近的if相匹配,缩进也不能暗示相匹配。
我们用翁凯老师的写的例子来说明
#include <stdio.h>
int main() {
int gameover = 0,count = 10;
if (gameover == 0)
if ( count > 20)
printf("player A win");
else
printf("player B win");
return 0;
}
我们认为gameover为0,且count大于20的时候palyer A获胜。
但结果是
player B win
也就是说,else被当做是if ( count > 20)的else
所以,无论如何,在if和else的后面都要敲{}。
级联判断
形如
if (condition1 || condition2) {
// input the function
} else if (condition3 && condition4){
// input the function
} else {
// input the function
}
switch-case语句
语句结构
switch(表达式){
case 常量表达式:
语句1;
break;
case 常量表达式:
语句2;
break;
default: // default是在前面情况找不到任何的匹配之后才会运行
语句;
break;
}
如果不写break会怎么样,就像下面的代码
#include <stdio.h>
int main() {
for(int i=0;i<3;i++){
switch (i) {
case 1:
printf("%d",i);
case 2:
printf("%d",i);
default:
printf("%d",i);
}
}
}
会返回011122
注意
- 如果不写
break;,就会导致继续执行,不会跳出,而是会连续执行,如果有defult,则也会跑到defult。case只是一个“站牌”,竖起一个入口而已。 - 这个
break;只能跳出switch-case
用switch-case的好处就是不用像if-else,if-else语句那样逐一判断。
本文来自博客园,作者:Mryan2005,转载请注明原文链接:https://www.cnblogs.com/Mryan2005/p/17872802.html
浙公网安备 33010602011771号