一、C语言中有两种选择语句:
(1)if 语句,用来实现两个分支的选择结构。
(2)switch 语句,用来实现多分支的选择结构。
二、用if语句实现选择结构
例如程序
#include <stdio.h>
int main()
{
float a,b,t;
scanf("%f,%f",&a,&b);
if(a>b)
{
//将a、b的值互换
t=a;
a=b;
b=t;
}
printf("%5.2f,%5.2f\n",a,b);
return 0;
}
在此程序中,对a和b两个变量进行 if 判断,如果a大于b,两值互换,否则不互换。
三、if 语句的一般形式有:
(1)if (表达式) 语句1 (没有else子句部分)
(2)if (表达式) (有else子句部分)
语句1
else
语句2
(3)if (表达式1) 语句1 (在else部分有嵌套了多层的if语句)
else if(表达式2)语句2
else if(表达式3)语句3
........
else if(表达式m)语句m
else 语句m+1
四、选择结构的嵌套
if 语句的嵌套的一般形式:
if ()
if() 语句 1
else 语句 2
else
if() 语句 3
else 语句 4
五、switch语句实现多分支选择结构
例题:按照考试成绩的等级输出百分制分数段,A等级为85分以上,B等级为70~84分,C等级为60~69分,D等级为60分以下。
#include<stdio.h>
int main()
{
char grade;
scanf("%c",&grade);
printf("your score:");
switch(grade)
{
case'A':printf("85~100\n");break;
case'B':printf("70~84\n");break;
case'C':printf("60~69\n");break;
case'D':printf("<60\n");break;
defult :printf("enter data error!\n");
}
return 0;
}
在每个case 语句中,最后都有一个break语句,它的作用是使流程转到switch语句的末尾处。
switch语句的一般形式为:
switch(表达式)
{
case 常量1:语句1
case 常量2:语句2
.....
case 常量n:语句n
default : 语句n+1
}
六、选择结构程序综合举例:
写一程序,判断某一年是否为闰年
#include<stdio.h>
int main()
{
int year,leap;
printf("enter yaer:");
scanf("%d",&year);
if(year%4==0)
{
if(year%100==0)
{
if(year%400==0)
leap=1;
else
leap=0;
}
else
leap=1;
}
else
leap=0;
if(leap)
printf("%d is",year);
else
printf("%d is not ",year);
printf("a leap year.\n");
return 0;
}
分析:
(1)变量year代表年份,leap是一个标志变量,用来判断是否为闰年,如果为闰年,则leap=1,否则leap =0;
(2)if (leap)如果leap的值不为零,则if 判断结果为真。写 if(leap)与 if(leap!=0)含义相同。