1 三大流程控制
C语言存在三大流程控制,包括:
-
顺序 执行: 从上向下, 顺序执行代码
-
判断 : 根据条件判断, 决定执行代码的分支
-
循环 : 让特定代码重复的执行
2 判断句
条件语句用来根据不同的条件来执行不同的语句,C语言中常用的条件语句包括if语句和switch语句。
2.1 if判断
2.1.1 if 语句
语法格式:
if (条件)
{
// 条件成立时,要做的事
}
案例需求:
●定义一个整数变量记录年龄
●判断是否满 18 岁
●如果满 18 岁,允许进网吧
#include <stdio.h>
int main()
{
// 定义一个整数变量记录年龄
int age;
printf("请输入年龄:");
scanf("%d", &age);
// 判断是否满 18 岁
if (age >= 18)
{
// 如果满 18 岁,允许进网吧
printf("允许进网吧\n");
}
return 0;
}
2.1.2 if...else 语句
语法格式:
if (条件)
{
// 条件成立时,要做的事
}
else
{
// 条件不成立时,要做的事
}
案例需求:
●定义一个整数变量记录年龄
●判断是否满 18 岁
●如果满 18 岁,允许进网吧
●否则,提示回家写作业
#include <stdio.h>
int main()
{
// 定义一个整数变量记录年龄
int age;
printf("请输入年龄:");
scanf("%d", &age);
// 判断是否满 18 岁
if (age >= 18)
{
// 如果满 18 岁,允许进网吧
printf("允许进网吧\n");
}
else
{
// 否则,提示回家写作业
printf("回家写作业\n");
}
return 0;
}
2.1.3 多重if else语句
语法格式:
if (条件1)
{
// 条件1成立时,要做的事
}
else if(条件2)
{
// 条件2成立时,要做的事
}
else
{
// 条件不成立时,要做的事
}
案例需求:
-
天猫超市双 11 推出以下优惠促销活动:
-
购物满 50 元,打 9 折;
-
购物满 100 元,打 8 折;
-
购物满 200 元,打 7 折;
-
购物满 300 元,打 6 折;
-
●编程计算当购物满 多少元时,实际付费多少?
#include <stdio.h>
int main()
{
// 1.定义变量记录购买金额 定义变量记录实际费用
float money;
float 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;
}
3 switch语句
-
测试一个表达式是否等于一些可能的值,并根据表达式的值执行相应的代码块,可以使用switch语言实现
-
switch可以支持数据类型:
-
整数类型
-
枚举类型
-
字符型
-
-
switch和if区别:
-
需要根据布尔条件来执行不同的代码块,则应使用if语句
-
需要根据表达式的值来执行不同的代码块,则应使用switch语句
-
语法格式:
switch (expression)
{
case value1:
{
// 代码块1
break;
}
case value2:
{
// 代码块2
break;
}
...
case valuen:
{
// 代码块2
break;
}
default:
// 代码块3
}
案例需求:
-
输入int类型的数据,根据结果输出不同的内容
-
输入1:输出Monday
-
输入2:输出Tuesday
-
输入3:输出Wednesday
-
输入4:输出Thursday
-
输入5:输出Friday
-
输入6:输出Saturday
-
输入7:输出Sunday
-
输入其它:输出error
-
#include <stdio.h>
int main()
{
// 1. 定义变量保存数据
int dayNum = 0;
// 2. 输入数据
printf("请输入1~7的数字:");
scanf("%d", &dayNum);
// 对输入数据做校验
if (!((dayNums >= 1) && (dayNums <= 7)))
{
printf("数据非法,请重新输入\n");
return 1;
}
// 3. 使用switch根据数据不同输出不同的结果
switch (dayNum)
{
case 1:
{
printf("Today is Monday\n");
break;
}
case 2:
{
printf("Today is Tuesday\n");
break;
}
case 3:
{
printf("Today is Wednesday\n");
break;
}
case 4:
{
printf("Today is Thursday\n");
break;
}
case 5:
{
printf("Today is Friday\n");
break;
}
case 6:
{
printf("Today is Saturday\n");
break;
}
case 7:
{
printf("Today is Sunday\n");
break;
}
default:
printf("error\n");
}
return 0;
}