一、选择结构
1.if ...else
if(表达式)
{
代码块;
}
如果表达式为真, 执行代码块;
假, 不执行。
注意:如果没有花括号,if控制往下第一条
if(表达式)
{
代码块1;
}
else
{
代码块2;
}
如果表达式为真, 执行代码块1;
假, 执行代码块2。
if(表达式1)
{
代码块1;
}
else if(表达式2)
{
代码块2;
}
else if(表达式3)
{
代码块3;
}
....
else
{
代码块n;
}
先判断表达式1, 为真: 执行代码块1
为假: 判断表达式2
....
如果前面的表达式都不成立, 执行代码块n
eg:
闰年 (1)能被4整除,但不能被100整除
(2)能被400整除
终端输入年份,判断是否为闰年
int year;
printf("input a year:");
scanf("%d", &year);
if( (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0) )
{
printf("闰年\n");
}
else
{
printf("不是闰年\n");
}
2、switch case
switch(表达式)
{
case 常量表达式1:
代码块1;
break;
case 常量表达式2:
代码块2;
break;
case 常量表达式3:
代码块3;
break;
case 常量表达式4:
代码块4;
break;
.....
default :
代码块n;
}
eg:
终端输入成绩 int score; [0, 100]有效成绩
(1)无效成绩打印 "error"
(2)有效成绩判断等级:
[90, 100] ---- A
[80, 90) ---- B
[60, 80) ---- D
[0, 60) ---- not pass
int score;
printf("input a score:");
scanf("%d", &score);
if( 0 <= score && score <= 100 )
{
//int a = score / 10;
switch(score / 10)
{
case 10: printf("A\n"); break;
case 9: printf("A\n"); break;
case 8: printf("B\n"); break;
case 7: printf("D\n"); break;
case 6: printf("D\n"); break;
default: printf("not pass\n"); break;
}
}
else
{
printf("error\n");
}