一、if语句
使用格式:
if(表达式/常量/变量)
{
语句块1;
}
//先计算小括号中的值
// 如果为真(1)--->会执行大括号中的语句
// 如果为假(0)--->不会执行大括号中的语句
例子:
/*猜数字游戏:输入一个数字,判断是不是等于5,如果等于5打印“恭喜你”,不是5打印“很可惜”*/
#include <stdio.h>
int main()
//先定义变量
{
int num = 0;
//提示用户输入一个数
printf("请输入一个数字:\n");
//接收用户输入的数
scanf("%d",&num);
//判断这个数是否等于5
if(num == 5)
{
printf("恭喜你!\n");
}
//如果等于5 提示 恭喜你
if(num != 5)
{
printf("很可惜!\n");
}
//如果不等于5 提示 很可惜
return 0;
}
//
//
if语句的高级用法:
if(表达式1)
{
语句块1;//表达式1为真
}else if(表达式2)
{
语句块2;//表达式1为假,表达式2为真
}else if(表达式3)
{
语句块3;//表达式1为假,表达式2为假,表达式3我真
}else
{
语句块4;//表达式1为假,表达式2为假,表达式3为假
}
高级用法的例子:
/*输入一个属于0-100的成绩,按0-59(E),60-69(D),
70-79(C),80-89(B),90-100(A)分成几个等级*/
#include <stdio.h>
int main()
{
//定义变量,用来保存用户输入的分数
int score = 0;
//提示用户输入分数
printf("请输入一个分数:\n");
//接收用户输入的分数
scanf("%d",&score);
//判断分数是否合法(小于0或者大于100都不合法)
if(score <= 0||score >= 100)
{
printf("您输入的分数不合法,请重新输入\n");
}
//分数合法以后,判断等级
else if(score <= 59)
{
printf("E\n");
}
//E级
else if(score <= 69)
{
printf("D\n");
}
//D级
else if(score <= 79)
{
printf("C\n");
}
//C级
else if(score <= 89)
{
printf("B\n");
}
//B级
else
{
printf("A\n");
}
//A级
return 0;
}
二、if...else语句
使用格式:
if(表达式)
{
语句块1;
}
else
{
语句块2;
}
//如果表达式为真,则执行语句块1,否则执行语句块2
例子:
/*猜数字游戏:输入一个数字,判断是不是等于5,如果等于5打印“恭喜你”,不是5打印“很可惜”*/
#include <stdio.h>
int main()
//先定义变量
{
int num = 0;
//提示用户输入一个数
printf("请输入一个数字:\n");
//接收用户输入的数
scanf("%d",&num);
//判断这个数是否等于5
if(num == 5)
{
printf("恭喜你!\n");
}
//如果等于5 提示 恭喜你
else
{
printf("很可惜!\n");
}
//如果不等于5 提示 很可惜
return 0;
}
if...else嵌套格式:
if(表达式1)
{
语句块1;
}
else
{
if(表达式2)
{
语句块2;
}
else
{
语句块3;
}
}
//如果表达式1为真,执行语句1
//如果表达式1为假,执行表达式2。如果表达式2为真,执行语句块2
// 如果表达式2为假,执行语句块3
if...else嵌套例子:
/*猜数字游戏:输入一个数字,判断是不是等于5,
如果等于5打印“恭喜你”,如果大于5提示“大于5了!”,如果小于5提示“小于5了!”*/
#include <stdio.h>
int main()
//先定义变量
{
int num = 0;
//提示用户输入一个数
printf("请输入一个数字:\n");
//接收用户输入的数
scanf("%d",&num);
//判断这个数是否等于5
if(num == 5)
{
printf("恭喜你!\n");
}
//如果等于5 提示 恭喜你
else
{
if(num>5)
{
printf("大于5了!\n");
}
else
{
printf("小于5了!\n");
}
}
//如果不等于5 提示 很可惜
return 0;
}
三、switch语句
使用格式:
switch(表达式)
{
case 常量表达式1: 语句1;
case 常量表达式2: 语句2;
...
case 常量表达式n: 语句n;
default: 语句n+1;
}
/*计算表达式的值,并逐个与其后的常量表达式的值比较,当表达式的值与某个
常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行执行
后面所有case后的语句。如表达式的值与所有case后的常量表达式的值不相同
,则执行default后的语句*/
注意事项:上述格式会出现case穿透(某个case语句执行完成后,并没有结束,而直接向下执行其他的case语句),为防止这种现象,可在每个case语句的最后加上break;
switch条件表达式的类型:
a)整型变量
b)整型常量
c)返回值是整型的表达式
d)还可以放可以转换为int类型的表达式
case语句注意事项:
a)可以是常量或常量表达式
b)case语句之后,默认的第一句话不能定义变量(如果加上大括号可以定义)
例子:
/*从键盘输入一个月份,输入对应季节
12-2 冬季
3-5 春季
6-8 夏季
9-11 秋季*/
#include <stdio.h>
int main()
{
int month = 1;//定义变量
printf("请输入月份:\n");//提示输入数据
scanf("%d",&month);//接收数据
if(month<=0||month>=12)
{
printf("您输入的不合法\n");
}
switch(month)
{
case 12:
case 1:
case 2:
printf("冬季\n");break;
case 3:
case 4:
case 5:
printf("春季\n");break;
case 6:
case 7:
case 8:
printf("夏季\n");break;
case 9:
case 10:
case 11:
printf("秋季\n");break;
}
return 0;
}
四、if语句和switch语句的选择
1)分支较多且无法穷尽或进行大量列举时选择if
2)如果分支数量不是很多,但是使用if代码量较大,可以考虑switch