unsetunset流程控制语句(一)
通过一些语句来控制程序的执行流程
-
流程控制语句的分类
- 顺序结构
- 分支结构
- 循环结构
Part1:顺序结构:从上往下依次执行
📕:总结
- 顺序结构是程序默认的执行流程
- 顺序结构是从上往下依次运行的
Part2:分支结构:程序在执行的过程当中出现了岔路
2.1 分支结构的分类
-
if语句if表示判断- 作用:如果满足条件,才可以执行指定的代码
- 使用场景:某些代码满足条件的时候才执行
if语句需要的能力:利用if语句对数据进行判断,从而执行不同的代码
2.1.1 if 语句的格式
1. 语句的第一种格式
第一个演示程序:
#include <stdio.h>
int main(){
/*
if的格式:
if(关系表达式)
{
语句体;
}
*/
// 需求:判断变量 a 里面记录的值,是否大于10,如果成立,就打印语句:真的大于10
// 定义变量
int a = 5;
// 判断
if (a > 10){
printf("真的大于10\n");
return 0; // 结束程序
}
}
练习:体温测量仪
需求:定义变量表示体温,当温度大于 37.5℃的时候,会有语音报警
// 4_2_if_demo.c
#include <stdio.h>
int main(){
// 需求:温度大于 37.5 度,就会有语音报警
// 定义变量记录体温
double temperature;
scanf("%lf",&temperature);
// 判断
if (temperature > 37.5){
printf("体温过高语言报警\n");
return 0; // 结束程序
}
}
练习
-
需求:
- 需求:初始最大生命200,受到80点伤害,技能恢复100点血
- 当前血量是多少?
#include <stdio.h>
int main(){
// 需求:游戏中人物的血条
/*
初始最大生命:200
受到了伤害:80
恢复了血量:100
请问当前血量是多少?
*/
int blood = 200; // 初始最大生命
int damage = 80; // 受到的伤害
int restore = 100; // 恢复的血量
// 游戏的逻辑思路
blood = blood - damage + restore;
// printf("当前血量是:%d\n", blood);
// 判断
if(blood > 200)
{
blood = 200;
}
printf("当前血量是:%d\n", blood);
return 0;
}
💡 细节1:
- 在 C 语言中,如果判断的结果是一个数字,非 0 表示条件成立,0 表示条件不成立
#include<stdio.h>
int main(){
if( 0 ){
printf("条件为0代码不会执行");
}
return 0;
}
💡 细节2:如果大括号里面的语句体只有一行,那么大括号可以省略不写
// 细节2:如果大括号里面的语句体只有一行,那么大括号可以省略不写
int a = 10;
if ( a > 5)
printf("真的大于10\n");
printf("真的大于10\n");
printf("真的大于10\n");
printf("真的大于10\n");
printf("真的大于10\n");
练习
1:
思路比较简单:
1.定义 🍏 中虫子的数量
2.if 进行判断(单分支结构)
2. if语句的第二种格式
引入例子:❓遇到这种多分支,单一判断无法满足的条件该怎么办?
思路比较简单:
1.定义一个变量的值为1
2.if 进行隐含条件判断
#include<stdio.h>
int main(){
// 1.定义一个变量用来表示姑娘是否满意
int satisfied = 1;
// 2.判断姑娘是否满意
if(satisfied)
{
printf("我们还是可以一起的\n");
}
else
{
printf("还是分了吧\n");
}
return 0;
}
if ( 关系表达式)
{
语句体 A;
}
else
{
语句体 B;
}
练习
2: 表白
需求:定义一个整数表示我心爱的姑娘对我的好感度。 如果大于等于60,就同意我的表白。 否则,我就去表白别人了。
#include<stdio.h>
int main(){
// 1.定义一个变量用来表示姑娘的好感度
int love = 60;
// 2.判断
if(love >= 70)
{
printf("同意我表白\n");
}
else
{
printf("表白别人\n");
}
return 0;
}
练习
3:
需求: 我跟小诗诗一起去看电影 如果在同一排而目连着坐,我会开心的看电影 如果不是在同一排或者没有连着坐,我会开心的打游戏 提示: 每张电影票定义两个整形变量,分别表示第几排和座位号 电影票号的规则: X排x号
#include <stdio.h>
int main()
{
// 1.定义4个变量分别表示两张电影票
int rowA = 5;
int numberA = 6;
int rowB = 6;
int numberB = 7;
// 2.判断
/*
如果在同一排而目连着坐,我会开心的看电影
同一排:roWA==rowB
连着坐:numberA-numberB
如果不是在同一排或者没有连着坐,我会开心的打游戏
*/
if ((rowA = rowB) && (numberA - numberB == 1 || numberA - numberB == -1))
{
printf("我会开心的看电影");
}
else
{
printf("我会开心的打游戏");
}
return 0;
}
3. if语句的第三种格式
if(关系表达式A)
{
语句体A;
}
else if(关系表达式B)
{
语句体B;
}
else if(关系表达式C)
{
语句体C;
}
else
{
语句体N;
}
从上往下依次进行判断 只有要有一个判断成立,就执行对应的语句体 如果所有的判断都不成立,就执行else的语句体
需求:
键盘录入游戏氪金的总额度,不同的额度VP等级也不一样
- 99元:尊贵的VIP1
- 0~499元:尊贵的VIP2
- 0~999元:尊贵的V1P3
- 00~1999元:尊贵的V1P4
- 00~5000元:顶级的V1P5
练习
4
- 我第一次的写法
#include <stdio.h>
int main()
{
/*
考试奖励:
95-100:自行车一辆
90-94:游乐场玩一天
80-~89:变形金刚一个
80以下:胖揍一顿
*/
// 1.定义一个变量记录小明的考试成绩
int score = 80;
// 2.判断
if (score > 95 & score < 100)
{
printf("自行车一辆");
}
else if (score > 90 & score < 94)
{
printf("游乐场玩一天");
}
else if (score > 80 & score < 89)
{
printf("变形金刚一个");
}
else
{
printf("胖揍一顿");
}
return 0;
}
- 正确结果
对于一些异常数据,需要再进行一次嵌套,去除掉异常区间,保留正常数值