【C语言】第三期——判断语句
- 人工智能
- 2025-09-02 05:36:01

目录
前言
1 if选择语句
1.1 基本写法
1.1.1 单分支
1.1.1.1 简写
1.1.2 双分支
1.1.3 多分支
1.2 if嵌套
1.3 if常见错误
1.4 案例:求两个数的最大值
2 switch case语句
2.1 基本格式
2.2 switch穿透
3 三元运算
4 if选择语句与三元运算符的应用示例
if else
三元运算
前言
在前几章的学习中,所编写的程序都是按照顺序结构进行设计。
在顺序结构中,程序从上到下逐行执行,中间没有任何跳跃,每行语句都会被执行到。
虽然采用顺序结构已经可以满足编程需求,但实际上,在很多情况下,我们期望当满足某个条件时才执行某段程序,否则就不执行。
如:
(1)如果学生的成绩大于等于 60 分,就输出“及格”,否则就输出“不及格”; (2)判断一个人的性别,如果是男生,就输出“男”,否则就输出“女”; (3)如果年龄大于等于18 岁,就输出“成年人”,否则就输出“未成年人”。
对于这样的需求,采用顺序结构显然是不行的,因为代码即使出现在程序中,也有可能不会被执行。
为了解决这类问题,C 语言提供了选择结构,也被称为分支结构。
采用选择结构设计的程序在执行时,并不是从上到下逐行执行,而是根据不同的条件执行不同的代码。
C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。
C 语言为实现选择结构提供了三种语句:
(1)if选择语句;
(2) switch 选择语句。
(3)? : 运算符 条件运算符 ? :(可以用来替代 if...else 语句)
1 if选择语句 1.1 基本写法
if语句的基本格式
if(表达式){ 语句块 }if else的第二种格式
if(表达式){ 语句1 }else{ 语句2 }if else语句的第三种格式
if(表达式1){ 语句1 }else if(表达式2){ 语句2 }else if(表达式3){ 语句3 }else{ 语句4 }1.1.1 单分支
需求1:判断一个人的年龄,如果大于18打印成年人,否则不输出任何内容
#include <stdio.h> int main() { int age = 22; if (age > 18) { printf(" 年龄大于 18\n"); } return 0; } 1.1.1.1 简写 #include <stdio.h> int main() { int age = 22; if (age > 18) printf(" 年龄大于 18\n"); return 0; }提示:if 表达式里面只有一行语句的时候可以把{}去掉,但是我们写代码的时候推荐加上{}
1.1.2 双分支
需求2:判断一个人的年龄,如果大于18打印成年人,否则输出未成年
#include<stdio.h> int main() { int age = 10; if (age > 18) { printf(" 成年人 \n"); } else { printf(" 未成年人 "); } return 0; }1.1.3 多分支
需求3:判断一个学生的成绩 如果大于90显示优秀、如果大于80显示良好、如果大于等于60显示及格、如果小于60显示不及格
#include <stdio.h> int main() { int score = 88; if (score > 90) { printf("优秀"); } else if (score > 80) { printf("良好"); } else if (score >= 60) { printf("及格"); } else { printf("不及格"); } return 0; }1.2 if嵌套 #include <stdio.h> int main() { int age = 35; if (age > 18) // 外层 if 语句 { printf("age 大于 18"); if (age > 30) // 内层 if 语句 { printf("age 大于 30"); } } return 0; }
1.3 if常见错误
注意 条件判断的==号
#include <stdio.h> int main() { int score = 100; if (score == 100) { printf("%s", "满分"); } return 0; }1.4 案例:求两个数的最大值 #include <stdio.h> int main(void) { int a = 34; int b = 65; int max; if (a > b) { max = a; } else { max = b; } printf("a和b的最大值是:%d", max); return 0; }
2 switch case语句
上面我们给大家介绍了处理多分支结构的 if·..else if··else 语句。
在实际应用过程中,当分支比较多时, if 语句会变得冗长且难以阅读。
为了解决这个问题,C 语言提供了另外一种多分支处理语句: switch 语句。
注意:所有的switch语句都可以使用if else来替代,但是不是所有的if else都可以使用switch 来替代。
2.1 基本格式 switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; …… case 常量表达式n: 语句n; break; default: 语句n+1; }案例:使用switch判断一个人的性别
#include <stdio.h> int main() { int sex = 1; switch (sex) { case 1: printf("%s", "性别是男"); break; case 2: printf("%s", "性别是女"); break; default: printf("%s", "传入参数错误"); break; } return 0; }2.2 switch穿透
需求:输入一个月份判断这个月属于什么季节,使用switch完成
#include <stdio.h> int main(void) { int month = 8; switch (month) { case 1: printf(" 冬天 "); break; case 2: printf(" 冬天 "); break; case 12: printf(" 冬天 "); break; case 3: printf(" 春天 "); break; case 4: printf(" 春天 "); break; case 5: printf(" 春天 "); break; case 6: printf("夏天"); break; case 7: printf(" 夏天 "); break; case 8: printf(" 夏天 "); break; case 9: printf("夏天"); break; case 10: printf(" 夏天 "); break; case 11: printf(" 夏天 "); break; default: printf(" 月份错误 "); } return 0; }可以使用switch穿透功能对上面代码进行优化
#include <stdio.h> int main(void) { int month = 8; switch (month) { case 12: case 1: case 2: printf(" 冬天 "); break; case 3: case 4: case 5: printf(" 春天 "); break; case 6: case 7: case 8: printf(" 夏天 "); break; case 9: case 10: case 11: printf(" 夏天 "); break; default: printf(" 月份错误 "); break; return 0; }3 三元运算
条件运算符又被称为三元运算符,格式如下:
表达式1?表达式2:表达式3其求值规则为:如果表达式1的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。条件表达式通常用于赋值语句之中。
4 if选择语句与三元运算符的应用示例
求两个数的最大值
if else #include <stdio.h> int main(void) { int a = 34; int b = 65; int max; if (a > b) { max = a; } else { max = b; } printf("a和b的最大值是:%d", max); return 0; } 三元运算 #include <stdio.h> int main(void) { int a = 34; int b = 65; int max = a > b ? a : b; printf("a和b的最大值是:%d", max); return 0; }【C语言】第三期——判断语句由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【C语言】第三期——判断语句”