选择流程控制
-
if ... else
语句
完整形式:
if (判断条件)
{
//符合情况时执行的内容
} else {
//不符合条件时执行的内容
}
当执行内容为单条语句时,可以简单写为:
if (判断条件)
//符合情况时执行的内容;
else
//不符合条件时执行的内容;
如果不处理不服条件的情况时,可以写为:
if (判断条件)
{
//符合情况时执行的内容
}
或者
if (判断条件)
//符合情况时执行的内容;
if ... else
语句的例子
/**
*猜数游戏
**/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int morenshu = 47;
int shu;
printf("猜一个100以内的质数,十位数为2的倍数且小于5,个位数大于6。请输入:\n");
scanf("%d",&shu);
if(shu == morenshu)
{
printf("你赢了!");
}
else
{
printf("你输了!");
}
return 0;
}
-
switch... case
语句
switch... case
的语法:
switch (判断条件){
case 条件1(常数) :
// 符合条件1时执行的内容;
break; /* 可选的 */
case 条件2(常数) :
// 符合条件1时执行的内容;
break; /* 可选的 */
case 条件...(常数) :
// 符合条件...时执行的内容;
break; /* 可选的 */
//...
default : /* 可选的 */
// 默认情况下执行的内容;
}
case
后面必须是常数。
switch... case
语句用法举例:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int fenshu;
int jidian;
printf("请输入分数:\n");
scanf("%d",&fenshu);
printf("%d", fenshu);
int tmp ;
tmp = fenshu/10;
switch(tmp)
{
case 6:
jidian = 1;
break;
case 7:
jidian = 2;
break;
case 8:
jidian = 3;
break;
case 9:
case 10:
jidian = 4;
break;
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
jidian = 0;
break;
default:
jidian=-1;
break;
}
printf("对应绩点为:%d\n",jidian);
return 0;
}
- 选择流程控制综合实例
/**
*这是一个能根据输入的年份和月份给出当月天数的程序。
*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
int year, month, day, flag = 0; // flag 闰年和非闰年的标记,非闰年为0,闰年为1
printf("请依次输入年份和月份,以空格间隔:");
scanf("%d%d", &year, &month);
//判断闰年否
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
flag = 1;
printf("%d 是闰年,", year);
} else {
flag = 0;
printf("%d 是平年,", year);
}
switch (month)
{
case 1:
day = 31;
break;
case 2:
if (flag == 0)
day = 28;
else
day = 29;
break;
case 3:
day = 31;
break;
case 4:
day = 30;
break;
case 5:
day = 31;
break;
case 6:
day = 30;
break;
case 7:
day = 31;
break;
case 8:
day = 31;
break;
case 9:
day = 30;
break;
case 10:
day = 31;
break;
case 11:
day = 30;
break;
case 12:
day = 31;
break;
}
printf(" %d 月有 %d 天。", month, day);
return 0;
}