-ciox.jpg)
【C】分支结构和循环结构
AI-摘要
Tianli GPT
AI初始化中...
介绍自己
生成本文简介
推荐相关文章
前往主页
前往tianli博客
分支结构
1. 概述
分支结构在开发中使用非常多,主要用于条件判断,条件过滤,情况处理。。。开发中的分支结构有
- if 分支
- if else 分支
- if else if 分支
- switch case 选择分支结构
2. if 分支结构
2.1 基本格式和执行流程
if (/* 条件判断,要求结果为真假关系 */)
{
// 语句体,有且只有在 if 之后小括号中的条件判断为真才会执行。
}
执行流程:
- if 之后小括号中所需的条件判断,通常是利用关系运算符和逻辑运算符组合完成,也有通过单一数据判断,遵守的规则是【非 0 即真】
- 程序执行到 if 分支结构,首先判断 if 之后小括号的条件判断情况
- 如果为真,执行大括号中的语句体内容,执行完毕,继续后续代码执行
- 如果为假,不执行大括号中的语句体内容。
2.2 if 分支结构案例代码
完成条件判断: 判断用户提供的字符是否为数字字符
条件完成:
// 要求字符在 '0' ~ '9' 之间。 // 假设用户提供字符的临时存储变量为 ch '0' <= ch <= '9'; // 正常的数学方式和生活逻辑,但是代码中不支持。 ch >= '0' && ch <= '9';
#include <stdio.h>
int main(int argc, const char *argv[])
{
char ch = '5';
if (ch >= '0' && ch <= '9')
{
printf("当前字符为数字字符!\n");
}
printf("if 分支结构后续代码...\n");
return 0;
}
3. if else 分支结构
3.1 基本格式和执行流程
if (/* 条件判断,要求结果为真假关系 */)
{
// 条件判断为真,执行 if 大括号对应的语句内容
}
else
{
// 条件判断为假,执行 else 大括号对应的语句内容
}
执行流程
- 程序执行到 if else 分支结构,首先判断 if 之后小括号中的条件范围是否为真
- 如果为真,执行 if 之后大括号语句内容
- 如果为假,执行 else 之后大括号语句内容
- 执行大括号内容结束,继续执行后续代码。
3.2 if else 分支结构案例代码
完成条件判断: 判断用户提供的字符是否为英文大写字母,如果是打印 YES ,否则打印 NO
条件判断完成,要求实现判断字符数据是否为大写英文字母
// 'A' ~ 'Z' // 假设字符临时存储变量为 ch ch >= 'A' && ch <= 'Z'
#include <stdio.h>
int main(int argc, const char *argv[])
{
char ch = 'i';
if (ch >= 'A' && ch <= 'Z')
{
printf("YES!\n");
}
else
{
printf("No!\n");
}
printf("大写字母判断案例!\n");
return 0;
}
4. if else if 分支结构
4.1 基本格式和执行流程
if (/* 条件匹配 1,真假关系 */)
{
// 处理方式 1
}
else if (/* 条件匹配 2,真假关系 */)
{
// 处理方式 2
}
else if (/* 条件匹配 3,真假关系 */)
{
// 处理方式 3
}
else
{
// 以上所有的 if 都没有匹配的最终处理方式
}
执行流程
- 程序执行到 if else-if 分支结构,将当前所持条件和 if 之后的小括号内容进行匹配
- 如果存在对应的匹配项,执行对应大括号处理方式,直接跳出分支结构
- 如果没有任何一个 if 匹配,执行 else 中的处理方式
4.2 if else-if 分支结构案例代码
超市购物送代金券
- 满 1000 送 300 元
- 满 500 送 100 元
- 满 100 送 15 元
- 不满 100 送心相印 or 清风一包
#include <stdio.h>
int main(int argc, const char *argv[])
{
int total_price = 88;
if (total_price >= 1000)
{
printf("送 300 元劳斯莱斯代金券\n");
}
else if (total_price >= 500)
{
printf("送 100 元五菱宏光代金券\n");
}
else if (total_price >= 100)
{
printf("送 15 元雅迪代金券\n");
}
else
{
printf("送xxy or 清风 半张\n");
}
printf("欢迎下次光临!\n");
return 0;
}
5. switch case 选择分支结构
5.1 基本格式和执行流程
【要求】
- switch case 结构请使用标准结构,不允许省略任何一个组成部分
- switch case 仅支持【整型,字符,枚举和字符串类型】,常用类型是【整型和枚举类型】
switch (/* 存储用户选择数据的变量 */)
{
case 常量1:
// 处理方式1
break;
case 常量2:
// 处理方式 2
break;
case 常量3:
// 处理方式 3
break;
default:
// 无匹配项的最终处理方式
break;
}
执行流程
- switch case 结构将小括号中变量存储数据和 case 之后的常量进行匹配
- 如果存在对应的匹配 case ,执行处理方式到 break 终止整个 switch case 结构
- 如果没有匹配项,执行 default 处理方式。default 就是 switch case 自带的错误处理方式。
5.2 switch case 分支结构案例代码
#include <stdio.h>
int main(int argc, const char *argv[])
{
printf("1. 地三鲜 18RMB\n");
printf("2. 麻婆豆腐 26RMB\n");
printf("3. 开水白菜 388RMB\n");
printf("4. 霸王别姬 128RMB\n");
printf("5. 红焖羊肉 38RMB\n");
printf("6. 黄河大鲤鱼 98RMB\n");
int choose = 16;
switch (choose)
{
case 1:
printf("1. 地三鲜 18RMB\n");
break;
case 2:
printf("2. 麻婆豆腐 26RMB\n");
break;
case 3:
printf("3. 开水白菜 388RMB\n");
break;
case 4:
printf("4. 霸王别姬 128RMB\n");
break;
case 5:
printf("5. 红焖羊肉 38RMB\n");
break;
case 6:
printf("6. 黄河大鲤鱼 98RMB\n");
break;
default:
printf("选择错误!");
break;
}
return 0;
}
循环结构
1. 概述
简单,初步解决代码中重复功能问题,如果按照基本的 CV 大法实现,会导致以下问题
- 代码冗余
- 代码阅读性极差
- 代码的可维护性极差
常用的循环结构有
- while 循环结构
- do while 循环结构
- for 循环结构
2. while 循环结构
2.1 基本格式和执行流程
while (/* 循环条件,真假关系 */)
{
// 循环体内容
// 循环条件修改变更
}
执行流程
- 程序执行到 while 循环结构,需要通过 while 之后小括号条件判断进行循环控制执行
- 如果循环条件为真,执行循环体内容,包括循环条件修改,回到 while 之后小括号判断
- 如果循环条件为假,终止循环运行。执行 while 循环结构后续代码。
2.2 while 循环结构案例代码
#include <stdio.h>
int main(int argc, const char *argv[])
{
// n 和 count 是较为常见的循环控制变量
int n = 10;
while (n > 0)
{
printf("%d 今天晚上去吃烤鱼!\n", n);
n -= 1; // --n n--
}
return 0;
}
3. do while 循环结构
3.1 基本格式和执行流程
do
{
// 循环体内容
// 循环条件修改变更
}
while (/* 循环条件,真假关系 */);
执行流程
- 程序执行到 do while 循环结构
- 首先执行 do 之后到 while 之间的所有代码
- 之后判断 while 小括号中的条件判断是否为真
- 如果为真,继续执行 do 到 while 之间的循环体内容,后续继续判断
- 如果为假,终止循环执行。
3.2 do while 循环结构案例代码
#include <stdio.h>
int main(int argc, const char *argv[])
{
int n = 10;
do
{
printf("%d 周日在家写项目\n", n);
n -= 1;
}
while (n > 0);
return 0;
}
4. for 循环结构【重点,常用】
4.1 基本格式和执行流程
for (/* 循环条件初始化 */; /* 循环条件判断 */; /* 循环条件修改 */)
{
// 循环体
}
执行流程
4.2 for 循环结构案例代码
#include <stdio.h>
int main(int argc, const char * argv[])
{
/*
* for 循环中常用的循环变量一般是 i j k l m n
* 通常情况下使用 i j k 较多
*/
for (int i = 1; i <= 10; i++)
{
printf("祝大家周末快乐!\n");
}
return 0;
}
5. break 关键字【重点】
break 关键字是用于跳出一层循环结构 或者 switch case 选择分支结构。一般情况下用于在循环过程满足特定条件之后,终止跳出循环内容。
#include <stdio.h>
int main(int argc, const char *argv[])
{
for (int i = 1; i <= 10; i++)
{
/*
* 等值判断如果涉及到常量和变量比较
* 推荐常量在前,变量在后
*/
if (5 == i) // i == 5
{
printf("break 执行!\n");
break;
}
printf("i = %d\n", i);
}
return 0;
}
tips:等值判断如果涉及到常量和变量比较,推荐常量在前,变量在后
6. continue [TODO]
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载必须注明来自 卡卡罗特
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果