- 顺序控制介绍
- 顺序控制举例和注意事项
- 分支控制 if-else
- 单分支
- 双分支
- 练习题
- 多分支
- 案例演示
- 嵌套分支
- 基本介绍
- 基本语法
- 应用案例 1
- 应用案例 2
在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的, 主要有三大流程控制语句。
1) 顺序控制
2)分支控制 (有很多,这篇文章主写if语句 ,switch放在后面写)
3)循环控制 (for,while,do…while ,后面文章写)
程序从上到下逐行地执行,中间没有任何判断和跳转。
Java,C 中定义变量时采用合法的前向引用的原则。如:
void main() {
int num1 = 12;
int num2 = num1 + 2;
}
错误形式:
void main() {
int num2 = num1 + 2;
int num1 = 12;
}
分支控制 if-else
让程序有选择的的执行,分支控制有三种:
1) 单分支
2) 双分支
3) 多分支
基本语法
if(条件表达式){
执行代码块;
}
说明:当条件表达式为真 (非 0) 时,就会执行 { } 的代码,返回假(0) 时,不会执行{ } 的代码。
案例说明: 编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁,则输出 “你年龄大于 18,要对自己的行为负责!”
#include双分支void main(){ int age = 0; printf("请输入年龄"); scanf("%d",&age); if(age > 18){ printf("n 你年龄大于 18,要对自己的行为负责!"); } printf("n爱干啥干啥吧"); }
基本语法
if(条件表达式){
执行代码块 1;
}else{
执行代码块 2;
}
说明:当条件表达式成立(为真),执行代码块 1,否则执行代码块 2
案例演示 : 编写一个程序,可以输入人的年龄,如果该同志的年龄大于 18 岁,则输出 “你年龄大于 18,要对 自己的行为负责!”。否则 ,输出”你年龄太小,放过你了.”
#include练习题void main(){ int age = 0; printf(" 请输入年龄"); scanf("%d",&age); if(age > 18){ printf("n 你年龄大于 18,要对自己的行为负责!"); }else{ printf("n 你年龄太小,放过你了"); } printf("n爱干啥干啥吧"); }
判断一个年份是否是闰年,闰年的条件是符合下面二者之一:
(1)年份能被 4 整除,但不能被 100 整除;
(2) 能被 400 整除;
#include多分支void main(){ int year = 0; printf("请输入年份"); scanf("%d",&year); if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 ){ printf("%d 是闰年",year); }else{ printf("%d 是平年",year); } }
基本语法
if(条件表达式 1){
执行代码块 1;
}else if (条件表达式 2){
执行代码块 2;
}
……else{
执行代码块 n;
}
说明:
1) 当条件表达式 1 成立时,即执行代码块 1
2) 如果表达式 1 不成立,才去判断表达式 2 是否 成立,
3)如果表达式 2 成立,就执行代码块 2
4)以此类推如果所有的表达式都不成立
佟欢参加 心理咨询师 考试,她和昊哥达成承诺: 如果: 成绩为 100 分时,奖励一部手机; 成绩为(80,99]时,奖励一支钢笔; 当成绩为[60,80]时,奖励一个保温杯; 成绩为其它时,给大嘴巴子。 请从键盘输入佟欢的 心理咨询师 考试,并加以判断, 输出提示
#include嵌套分支 基本介绍void main() { int score = 0; printf("请输入佟欢的成绩:"); scanf("%d",&score); if(score == 100) { printf("奖励一部手机"); } else if(score > 80 && score <=99) { printf("奖励一支钢笔"); } else if(score >= 60 && score <= 80) { printf("奖励一个保温杯"); } else { printf("大嘴巴子伺候"); } }
在一个分支结构中又完整的嵌套了另一个分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层 分支。嵌套分支不适合过多,最多不要超过 3 层
基本语法if(){
if(){ //被包含的可以是单分支,双分支,多分支
.....
}else{
......
}
}else{
......
}
应用案例 1
参加百米运动会,如果用时 8 秒以内进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。输入成绩和性别,进行判断。
#include应用案例 2void main() { //参加百米运动会,如果用时 8 秒以内进入决赛,否则提示淘汰。 //并且根据性别提示进入男子组或女子组。输入成绩和性别,进行判断。 int second = 0; printf("请输入秒数"); scanf("%d",&second); char gender = ' '; if(second <= 8) { printf("请输入性别(m/f)"); scanf("%c",&gender); scanf("%c",&gender); if(gender == 'm') { printf("请进入男子组"); } else if(gender == 'f') { printf("请进入女子组"); } else { printf("你不男不女是个什么东西?"); } } else { printf("你已经被淘汰了,继续努力"); } }
出票系统:根据淡旺季的月份和年龄,打印票价
4_10 旺季:成人(18-60):60 儿童(<18):半价 老人(>60):1/3
淡季:成人:40 其他:20
#include//出票系统:根据淡旺季的月份和年龄,打印票价 [考虑学生先做] 4_10 旺季: //成人(18-60):60 儿童(<18):半价 老人(>60):1/3 淡季:成人:40 其他:20 void main() { int season = 0;//定义季节 int age = 0; //定义年龄 double price = 60 ;//定义票价 printf("请输入季节来判断旺季or淡季"); scanf("%d",&season); if(season >= 4 && season <= 10) { printf("你已经进入旺季时刻,请让我看看你年龄"); scanf("%d",&age); if(age > 0 && age < 18) { printf("根据你的年龄,你的票价是 %.2f",price / 2 ); } else if(age >= 18 && age < 60) { printf("根据你的年龄,你的票价是 %.2f",price); } else if(age >= 60){ printf("根据你的年龄,你的票价是 %.2f",price / 3); }else{ printf("活这么大第一次看到这个年龄啊!!"); } } else if ((season > 10 && season < 13) || (season >=1 && season < 4 )) { printf("你已经进入淡季时刻,请让我看看你年龄"); scanf("%d",&age); price = 40; if(age >= 18 && age < 60) { printf("根据你的年龄,你的票价是 %.2f",price); } else if((age > 0 && age < 18) || (age >= 60)){ printf("根据你的年龄,你的票价是 %.2f",price / 2); }else{ printf("活这么大第一次看到这个年龄啊!!"); } } else { printf("你输入的数字有问题,本景点不会向你售票"); } }
编译时一定要反复检查,要细心。



