C语言有两种选择语句:
(1)if语句,实现两个分支的选择结构;
(2)switch语句,实现多分支的选择结构;
if语句的一般形式:
(1)
if(表达式)
{
语句;
}
表达式包括:关系表达式,逻辑表达式,数值表达式等等;
(2)
if(表达式)
{
语句1;
}
else
{
语句2;
}
语句可以包括:简单语句,复合语句,以及if语句的嵌套;
(3)if嵌套:
if(表达式)
{
语句;
}
else if(表达式)
{
语句;
}
else if()
{
语句;
}
. .
. .
. .
else
{
语句;
}
else总是和它上面的最近的未配对的if配对。
注意:
(1)if语句无论写在几行上,都是一个整体,属于同一个语句;(千万不要认为if语句部分是一个语句,else语句是另一个语句);else语句不能作为语句单独使用,必须和if语句同时使用。
(2)在if语句中要对给定条件进行检查,判断条件是否成立(在计算机语言中用“真”和“假”表示),若为真则执行。
(2)switch语句的一般结构:
switch(表达式)
{
case 常量 1:语句1:;break;
case 常量 2:语句2:;break;
case 常量 2:语句2:;break;
. . . .
. . . .
. . . .
default:语句;
}
(1)swtich后的“表达式”的值应该是整数类型(字符类型);
(2)当switch语句中case都不满足时执行default语句;
(3)可以没有default :此时没有和swtich相匹配的case常量,流程直接转到swtich语句的下一条语句;
(4)每个case的先后顺序不影响执行的结果;
(5)多个case可以共用一条执行语句;
两者比较:
相同点:都是处理多分支结构。
不同点:if语句是实现两个分支的选择结构,而swtich结构是实现多分支结构;
建议:
swtich在判断固定值的时候使用;
if在判断区间和范围的时候使用;
用swtich可以做的if多数都可以做;
下面分别用if和swtich来输出学生的成绩‘A’ 90—100 ‘B’ 80—90 ‘C’ 70—80 ‘D’ 60—70 ‘E’ 0—60:
if语句:
#include<stdio.h>
#include<windows.h>
int main()
{
int score;
printf("请输入成绩");
scanf_s("%d",&score);
if (score < 60)
printf("E");
else
if (score < 70)
printf("D");
else
if (score < 80)
printf("C");
else
if (score < 90)
printf("B");
else
printf("A");
system("pause");
return 0;
}
结果如下:
swtich语句:
#include<stdio.h>
#include<windows.h>
int main()
{
int score, n;
printf("请输入成绩");
scanf_s("%d", &score);
n = score / 10;
switch (n)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5: printf("E"); break;
case 6: printf("D"); break;
case 7: printf("C"); break;
case 8: printf("B"); break;
case 9:
case 10: printf("A"); break;
default: printf("\n");
}
system("pause");
return 0;
}
结果如下: