目录
switch语句和if…else if…else 语句的区别与应用
在前面的学习,所编写的程序都是按照顺序结构进行设计。在顺序结构中,程序从上到下逐行执行,中间没有任何跳跃,每行语句都会被执行到。虽然采用顺序结构已经可以满足编程需求,但实际上,在很多情况下,我们期望当满足某个条件时才执行某段程序,否则就不执行。如:
(1)如果学生的成绩大于等于 60 分,就输出「及格」,否则就输出「不及格」;
(2)判断一个人的性别,如果是男生,就输出「男」,否则就输出「女」;
(3)如果年龄大于等于 18 岁,就输出「成年人」,否则就输出「未成年人」。
对于这样的需求,采用顺序结构显然是不行的,因为代码即使出现在程序中,也有可能不会被执行。为了解决这类问题,C 语言提供了选择结构,也被称为分支结构。采用选择结构设计的程序在执行时,并不是从上到下逐行执行,而是根据不同的条件执行不同的代码。
C 语言为实现选择结构提供了两种语句:
(1)if 选择语句;
(2)switch 选择语句。
下面将详细介绍这两种选择语句。
if语句
if 语句是通过判断给定的条件是否为「真」,来决定是否执行指定的代码,if 语句的写法有很多,常用的形式有三种,我将依次介绍。
if 语句的第一种形式
if 语句的第一种形式如下所示。
if(表达式)语句
或
if(表达式)
{
语句块
}
说明:(1)表达式一般是比较表达式、或逻辑表达式。
(2)语句可以是单行语句,也可以是复合语句(语句块)。
第一种 if 语句的执行过程为:如果表达式的运算结果为「真」(非 0 为「真」),则执行 if 后面的语句,如果为「假」(0 为「假」)直接跳过该语句(语句块)继续向下执行。
例子:(如果下面函数基本格式还不清楚的可以复习一下看C语言总结汇总一)
01 #include<stdio.h>
02 int main()
03 {
04 int age=8;
05 if(age>18)
06 {
07 printf(「年龄大于 18\n」);
08 }
09 printf(「执行结束\n」);
10 getchar();
11 return 0;
12 }
运行结果:
01 #include<stdio.h>
02 int main()
03 {
04 int age=28;
05 if(age>18)
06 {
07 printf(「年龄大于 18\n」);
08 }
09 printf(「执行结束\n」);
10 getchar();
11 return 0;
12 }
运行结果:
if 语句的第二种形式
if 语句的第二种形式如下所示。
if(表达式)
{
语句 1
}
else
{
语句 2
}
这种形式的 if 语句也被称为 if…else…语句,该语句的执行过程为:如果表达式结果为「真」(非 0),执行 if 后面{ }中的语句 1。如果为「假」(0),则执行 else 后面「{ }」中的语句 2。也就是说 if 与 else 后面的语句只能有一个被执行。
if…else…语句使用。
例子:
01 #include<