分支语句
if else
语法:
if(表达式)
{
//当表达式成立执行的代码 代码块1
}else
{
//当表达式不成立执行的代码 代码块2
}
例:
int num;
scanf("%d", &num);
if (num == 666)
{
printf("中奖\n");
}
else
{
printf("未中奖\n");
}
执行顺序
判断表达式是否成立,如果成立执行代码块1 不成立执行代码块2
代码块1和代码块2 只会执行其一
注意
- if语句的花括号可以省略,但是只控制一条语句
- if语句后面可以没有else ,但是else前面不能没有if
分层结构
if 。。 else if 。。else if 。。else
语法
if(表达式1)
{
//当表达式1成立执行的代码 代码块1
}else if(表达式2)
{
//当表达式2成立执行的代码 代码块2
}else if(表达式3)
{
//当表达式3成立执行的代码 代码块3
}......
else{
//以上条件都不满足执行的代码 代码块4
}
执行顺序
判断表达式1,如果表达式1成立,执行代码块1,其他语句不再执行,但是如果表达式1不成立,继续判断表达式2,如果表达式2成立执行语句块2, 其他语句不再执行,.......如果所有表达式都不成立,执行执行else后面的代码块
例:
int num;
scanf("%d", &num); // 中奖号码
if (num == 111)
{
printf("恭喜中一等奖\n");
}
else if (num == 222)
{
printf("恭喜中二等奖\n");
}
else if (num == 333)
{
printf("恭喜中三等奖\n");
}else{
printf("再来一次\n");
}
switch case
语法结构
switch(变量或表达式)
{
case 常量1:语句块1;break;
case 常量2:语句块2;break;
case 常量3:语句块3;break;
...
case 常量n:语句块n;break;
default:语句块n+1;
}
执行顺序
判断表达式的结果等于哪一个case后面的常量值,对应执行后面的语句块,break跳出(结束判断,后面代码不执行)如果所有case后面的值都不相等,执行default的语句块
例:
#include <stdio.h> //引入头文件 std:标准 i:输入 o:输出 .h:库文件
int main(int argc, char const *argv[])
{
int a;
scanf("%d", &a);
switch (a)
{
case 3:
case 4: //输出一样时,可将break省略
case 5:
printf("春天\n");
break;
case 6:
case 7:
case 8:
printf("夏天\n");
break;
case 9:
case 10:
case 11:
printf("秋天\n");
break;
case 1:
case 2:
case 12:
printf("冬天\n");
break;
default:
printf("请输入正确的月份\n");
break;
}
return 0;
}
注意
- switch判断的是一个常量 不是区间
- case后面的break可以省略
- switch的表达式不能是字符串或者浮点型