本文章介绍的是三种基本结构中的、选择结构。
选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。
是非常常见的一种解决问题的方法。
C语言中有两种选择语句:
1.if语句,实现两个分支的选择结构。
2.switch 语句,实现多个分支的选择结构。
1.if语句
if语句的3种形式
if (表达式)
{
语句1;
}
if (表达式)
{
语句1;
}
else
{
语句2;
}
if (表达式)
{
语句1;
}
else if(表达式)
{
语句2;
}
..................
else if(表达式)
{
语句n;
}
else //最后else可以省略
{
语句n+1;
}
表达式符合(逻辑表达式)、(关系表达式)、(数值表达式);
语句则是(简单语句)(复合语句)(另一个if语句)(等);
举个例子:
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if (a>2)
{
printf("666");
}
else
{
printf("888");
}
return 0;
}
如果输入大于二的数字,就会输出666,否则888;
if语句根据题目需求来改变if后括号的表达式达到目的;
———————————————————————————————————————————
现在最基本的if语句知识基本讲述完毕,可以看一个例题。
输入3个整数a,b,c,要求由小到大顺序输出。
#############################################################################
思路: 将a,b,c,三个输入整数进行比较最小的数赋值给a,最大的数赋值给c。
可以先用伪代码的方法写出算法:
①scanf("%d %d %d",&a,&b,&c);
②if a>b a,b对换
③if a>c a,c对换
④if b>c b,c对换
⑤printf("%d %d %d",a,b,c);
———————————————————————————————————————————
具体如下:
#include <stdio.h>
int main()
{
int a,b,c,m;
scanf("%d %d %d", &a, &b, &c);
if (a > b)
{
m = a; a = b; b = m;
}
if (a > c)
{
m = a; a = c; c = m;
}
if (b > c)
{
m = b; b = c; c = m;
}
printf("%d %d %d", a, b, c);
return 0;
}
———————————————————————————————————————————
2.switch语句
switch的一般形式
switch(表达式)
{
case 常量1 : 语句1; break;
case 常量2 : 语句2; break;
: : : :
case 常量n : 语句n; break;
default : 语句n+1; break;
}
常量不能相同!;
表达式符合(整数类型 (包括字符类型));
语句则是(简单语句)(复合语句)(等);
举个例子:
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
switch(a)
{
case 1 : printf("111\n"); break;
case 2 : printf("222\n"); break;
default : printf("NO\n"); break;
}
return 0;
}
如果输入1,则输出111;
输入2,输出222;
输入其他,输出NO;
———————————————————————————————————————————
现在最基本的switch语句知识基本讲述完毕,可以看一个例题。
按照考试成绩的等级输出百分制,A为90分以上,B为80分到90分,C为60分到80分,D为60分以下。成绩由键盘输入
#############################################################################
思路:输入分数,然后利用switch 语句来进行选择所在分数等级。
①scanf("%d",&a);
②利用输入的a 来判断等级
③switch(a) { ...... }
———————————————————————————————————————————
具体如下:
#include<stdio.h>
int main()
{
int a;
scanf("%d", &a);
switch (a/10)
{
case 1:;
case 2:;
case 3:;
case 4:;
case 5:printf("D"); break;
case 6:;
case 7:printf("C"); break;
case 8:printf("B"); break;
case 9:;
case 10:printf("A"); break;
}
return 0;
}
———————————————————————————————————————————