if 分支语句
条件语句用来根据不同的条件来执行不同的语句,C 语言中常用的条件语句包括 if 语句和 switch 语句。
if 语句
语法格式:
c
if (条件) {
条件成立时,要做的事
……
}
案例需求:
- 定义一个整数变量记录年龄
- 判断是否满 18 岁(>=)
- 如果满 18 岁,允许进网吧嗨皮
示例代码:
c
#include <stdio.h>
int main() {
// 定义一个整数变量记录年龄
int age;
printf("请输入年龄:");
scanf("%d", &age);
// 判断是否满 18 岁(>=)
if (age >= 18) {
// 如果满 18 岁,允许进网吧嗨皮
printf("允许进网吧嗨皮\n");
}
return 0;
}
if...else 语句
基本语法
语法格式:
c
if (条件) {
条件成立时,要做的事
……
} else {
条件不成立时,要做的事
……
}
案例需求:
- 定义一个整数变量记录年龄
- 判断是否满 18 岁(>=)
- 如果满 18 岁,允许进网吧嗨皮
- 否则,提示回家写作业
示例代码:
c
#include <stdio.h>
int main() {
// 定义一个整数变量记录年龄
int age;
printf("请输入年龄:");
scanf("%d", &age);
// 判断是否满 18 岁(>=)
if (age >= 18) {
// 如果满 18 岁,允许进网吧嗨皮
printf("允许进网吧嗨皮\n");
} else {
// 否则,提示回家写作业
printf("回家写作业\n");
}
return 0;
}
三目运算符
运算符 | 术语 | 示例 | 结果 |
---|---|---|---|
?: | 三目运算符 | a>b?a:b; | 如果 a>b,整体为结果 a,否则整体结果为 b |
示例代码:
c
#include <stdio.h>
int main() {
// 通过三目运算符求 2 个数的最大值
int a = 10;
int b = 20;
int c = a > b ? a : b;
printf("最大值:%d\n", c);
return 0;
}
if…else if…else 语句
语法格式:
c
if (条件 1) {
条件 1 成立时,要做的事
……
} else if(条件 2) {
条件 2 成立时,要做的事
……
} else {
条件不成立时,要做的事
……
}
案例需求:
天猫超市双 11 推出以下优惠促销活动:
- 购物满 50 元,打 9 折;
- 购物满 100 元,打 8 折;
- 购物满 200 元,打 7 折;
- 购物满 300 元,打 6 折;
编程计算当购物满 s 元时,实际付费多少?
示例代码:
if - else if - else 示例
c
#include <stdio.h>
int main() {
// 1. 定义变量记录购买金额 定义变量记录实际费用
float money, real_money;
// 2. 输入购买金额
printf("请输入购买金额:");
scanf("%f", &money);
// 3. 根据购买金额判断折扣
if (money >= 50 && money < 100) {
// 购物满 50 元,打 9 折;
real_money = money * 0.9;
} else if (money >= 100 && money < 200) {
// 购物满 100 元,打 8 折;
real_money = money * 0.8;
} else if (money >= 200 && money < 300) {
// 购物满 200 元,打 7 折;
real_money = money * 0.7;
} else if (money >= 300) {
// 购物满 300 元,打 6 折;
real_money = money * 0.6;
} else {
// 不满 50 原价
real_money = money;
}
printf("购买金额:%f 实际价格:%f\n", money, real_money);
return 0;
}
优化后的代码:
c
#include <stdio.h>
int main()
{
// 1. 定义变量记录购买金额 定义变量记录实际费用
float money, real_money;
// 2. 输入购买金额
printf("请输入购买金额:");
scanf("%f", &money);
// 3. 根据购买金额判断折扣
if (money >= 300) {
// 购物满 300 元,打 6 折;
real_money = money * 0.6;
} else if (money >= 200) {
// 购物满 200 元,打 7 折;
real_money = money * 0.7;
} else if (money >= 100) {
// 购物满 100 元,打 8 折;
real_money = money * 0.8;
} else if (money >= 50) {
// 购物满 50 元,打 9 折;
real_money = money * 0.9;
} else {
// 不满 50 原价
real_money = money;
}
printf("购买金额:%f 实际价格:%f\n", money, real_money);
return 0;
}