当前位置: 首页 > news >正文

C语言入门Day_18 判断和循坏的小结

目录

前言:

1.判断

2.循环

3.课堂笔记

4.思维导图


前言:

判断语句和循环语句都可以大致分为三个部分,第一个部分是固定的语法格式;第二部分是代码的执行顺序,第三部分是判断和循环成立与否的判断条件

1.判断

1.1

我们来看看 if 的代码执行顺序:

if(5>1){prinrf("5>1\n");
}
if (1<5){prinrf("5>1\n");
}

1.先执行判断语句 

 if (5 > 1) {

2.判断成立,执行代码块中的语句   

printf("5>1\n");

}

3.判断语句永远会被执行   

if (1 < 5) {

4.判断条件不成立,不执行剩下的语句

printf("5>1\n");

}

1.2

然后是if-else的双向判断:

我们来看看if-else的代码执行顺序:

if(1>5){printf("1>5\n");
} else{printf("1<5\n");
}

1.if判断语句第一个执行 

if (1 > 5) {

2.判断条件不成立,不执行if代码块中的代码

printf("1 > 5\n");

3.直接执行else语句

} else {

4.以及else代码块中的代码

printf("1 < 5\n");

}

1.3

最后是if-else if-else的多向判断/复杂判断:

我们看看多向判断的代码执行顺序:

if(1>5){printf("1>5\n");
}else if(1==5){printf("1==5\n");
} else {printf("1<5\n");
}

1.if判断语句首先执行,判断条件不成立

if (1 > 5) 

2.跳过if语句的代码块,进入else-if的判断,仍然不成立

else if(1 == 5) 

3.进入else判断语句

 else 

4.最后进入else判断语句的代码块

printf("1 < 5\n");

if,else if,else 是互斥关系,程序只会执行其中一个判读分支的代码块。

2.循环

首先是for循环,for循环中用两个分号分为了三个部分:

初始定义;判断条件;迭代操作

2.1

我们看看代码的执行顺序:

for(int i=0;i<3;i++){printf("%d\n",i);
}

1.第一次for循环,先初始定义,然后进行判断

for(int i =0;i < 3;i++) {

2.执行第一次循环代码块

printf("%d\n", i);

}

for(int i=0;i<3;i++){printf("%d\n",i);
}

3.第二次for循环,进行迭代操作,和条件判断

for(int i =0;i < 3;i++) {

4.执行第二次循环代码块

printf("%d\n", i);

for(int i=0;i<3;i++){printf("%d\n",i);
}

5.第三次for循环,进行迭代操作,和条件判断

 for(int i =0;i < 5;i++) {

6.执行第三次循环代码块

printf("%d\n", i);

2.2

while循环do-while循环也是类似的代码执行顺序。

do-while循环和while循环的核心差异在于do-while循环是先执行-再判断,while是先判断-再执行

没有特殊情况的话,我们推荐while循环

这是一个死循环,又叫无限循环,我们看看它的执行顺序:

while(true){printf("true!\n");
}

1.循环的判断条件,条件为真

while(true){

2.执行循环的代码块

printf("true!\n");

}

while(true){printf("true!\n");
}

3.循环的判断条件永远为真

while(true){

4.重复执行循环的代码块,永不结束

printf("true!\n");

}

2.3

作为判断和循环的核心之一,判断条件是个很重要的部分,判断条件为,后续的代码块就会执行;判断条件为,则不会执行后续的代码块。

判断条件无论是逻辑运算,还是比较运算,还是直接是一个布尔数,本质都是一个布尔数

2.4

判断和判断之间可以进行嵌套,循环和循环之间也可以进行嵌套,循环和判断之间仍然可以进行嵌套。

嵌套可以无数层,但是我们为了代码可读性和代码简洁性,不推荐太多层的嵌套。

2.5

针对循环代码顺序,我们可以通过breakcontinue来进行更精细化的控制。

break终结整体的循环结构,又称大循环;0.

continue跳过当下的这一次循环,又称小循环。

3.课堂笔记

1.判断条件为真才会执行代码块里的代码

if判断
if (5 > 1) { 
printf("5>1\n");
}

 

2.当if判断条件不为真时,执行else代码块

if-else 判断
if (1 > 5) {    
printf("1 > 5\n");
} else {    
printf("1 < 5\n");
}

3.当if判断条件不为真时,执行else if代码块

else if判断
if (1 > 5) {   printf("1 > 5\n");
} else if(1 == 5) {printf("1 == 5\n");
} else {    
printf("1 < 5\n");
}

4.使用for循环输出0,1,2,3,4

for循环
for(int i =0;i < 5;i++){    
printf("%d\n", i);
}

5.while循环先判断再执行

while循环
while(true){   
printf("true!\n");
}

6.break的作用为立即退出本层循环; continue语句的作用是跳过本循环中剩余的语句而强制执行下一次循环

break & continue
int i = 0;
while(true){   printf("true!\n");
}i++;  if(i < 5){continue; } else {      break;} 
}

4.思维导图

 在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。 

相关文章:

C语言入门Day_18 判断和循坏的小结

目录 前言&#xff1a; 1.判断 2.循环 3.课堂笔记 4.思维导图 前言&#xff1a; 判断语句和循环语句都可以大致分为三个部分&#xff0c;第一个部分是固定的语法格式&#xff1b;第二部分是代码的执行顺序&#xff0c;第三部分是判断和循环成立与否的判断条件。 1.判断 1…...

mac 好用的工具推荐

mac 好用的工具推荐 落雪&#xff1a;全网的音乐畅听&#xff0c;下载地址&#xff1a;https://github.com/lyswhut/lx-music-desktopMotrix: 免费下载工具&#xff0c;下载地址&#xff1a;https://xclient.info/s/motrix.html#versionsDownie&#xff1a;视频下载工具&#x…...

星际争霸之小霸王之小蜜蜂(十二)--猫有九条命

系列文章目录 星际争霸之小霸王之小蜜蜂&#xff08;十一&#xff09;--杀杀杀 星际争霸之小霸王之小蜜蜂&#xff08;十&#xff09;--鼠道 星际争霸之小霸王之小蜜蜂&#xff08;九&#xff09;--狂鼠之灾 星际争霸之小霸王之小蜜蜂&#xff08;八&#xff09;--蓝皮鼠和大…...

【软件分析/静态分析】chapter8 课程11/12 指针分析—上下文敏感(Pointer Analysis - Context Sensitivity)

&#x1f517; 课程链接&#xff1a;李樾老师和谭天老师的&#xff1a; 南京大学《软件分析》课程11&#xff08;Pointer Analysis - Context Sensitivity I&#xff09;_哔哩哔哩_bilibili 南京大学《软件分析》课程12&#xff08;Pointer Analysis - Context Sensitivity II&…...

时间复杂度与空间复杂度详解

时间复杂度与空间复杂度详解&#x1f996; 一、算法效率1.1 如何衡量一个算法的好坏1.2 算法的复杂度 二、时间复杂度2.1 时间复杂度的定义2.2 大O的渐进表示法2.3 如何记录表示算法复杂度 三、空间复杂度3.1 空间复杂度的定义3.2 小试牛刀 一、算法效率 1.1 如何衡量一个算法…...

目录操作函数

mkdir函数 rmdir函数 删除空目录 rename函数 换名 chdir函数 修改当前的工作目录 getcwd函数 获取当前工作的路径...

PlantUML入门教程:画时序图

软件工程中会用到各种UML图&#xff0c;例如用例图、时序图等。那我们能不能像写代码一样去画图呢&#xff1f; 今天推荐一款软件工程师的作图利器--PlantUML&#xff0c;它能让你用写代码的方式快速画出UML图。 一、什么是PlantUML&#xff1f; PlantUML是一个允许你快速作出…...

C#范围运算符

C#8.0语法中&#xff0c;范围运算符是一种用于快速截取序列的运算符&#xff0c;其语法为 “start…end”&#xff0c;表示从序列的 “start” 索引处开始&#xff0c;一直截取到"end" 索引处为止&#xff08;包括 “end” 索引处的元素&#xff09;。范围运算符主要…...

云数据库知识学习——云数据库产品、云数据库系统架构

一、云数据库产品 1.1、云数据库厂商概述 云数据库供应商主要分为三类。 ① 传统的数据库厂商&#xff0c;如 Teradata、Oracle、IBM DB2 和 Microsoft SQL Server 等。 ② 涉足数据库市场的云供应商&#xff0c;如 Amazon、Google、Yahoo!、阿里、百度、腾讯…...

C++中引用详解!

前言&#xff1a; 本文旨在讲解C中引用的相关操作&#xff0c;以及引用的一些注意事项&#xff01;搬好小板凳&#xff0c;干货来了&#xff01; 引用的概念 何谓引用呢&#xff1f;引用其实很容易理解&#xff0c;比如李华这个同学&#xff0c;他因为很调皮&#xff0c;所以…...

VUE3+TS项目无法找到模块“../version/version.js”的声明文件

问题描述 在导入 ../version/version.js 文件时&#xff0c;提示无法找到模块 解决方法 将version.js改为version.ts可以正常导入 注意&#xff0c;因为version.js是我自己写的模块&#xff0c;我可以直接该没有关系&#xff0c;但是如果是引入的其他的第三方包&#xff0c…...

数据结构-堆的实现及应用(堆排序和TOP-K问题)

数据结构-堆的实现及应用[堆排序和TOP-K问题] 一.堆的基本知识点1.知识点 二.堆的实现1.堆的结构2.向上调整算法与堆的插入2.向下调整算法与堆的删除 三.整体代码四.利用回调函数避免对向上和向下调整算法的修改1.向上调整算法的修改2.向下调整算法的修改3.插入元素和删除元素函…...

Spring 条件注解没生效?咋回事

条件注解相信各位小伙伴都用过&#xff0c;Spring 中的多环境配置 profile 底层就是通过条件注解来实现的&#xff0c;松哥在之前的 Spring 视频中也有和大家详细介绍过条件注解的使用&#xff0c;感兴趣的小伙伴戳这里&#xff1a;Spring源码应该怎么学&#xff1f;。 从 Spr…...

96. 不同的二叉搜索树

class Solution { public:int numTrees(int n) {if (n0) {return 1;}vector<int> dp(n1, 0);dp[0] 1;dp[1] 0;for (int i 1; i < n; i) {for (int j 0; j < i; j) {dp[i] dp[j] * dp[i - 1 - j];}}return dp[n];} };...

Android Jetpack 中Hilt的使用

Hilt 是 Android 的依赖项注入库&#xff0c;可减少在项目中执行手动依赖项注入的样板代码。执行 手动依赖项注入 要求您手动构造每个类及其依赖项&#xff0c;并借助容器重复使用和管理依赖项。 Hilt 通过为项目中的每个 Android 类提供容器并自动管理其生命周期&#xff0c;…...

批量采集的时间管理与优化

在进行大规模数据采集时&#xff0c;如何合理安排和管理爬取任务的时间成为了每个专业程序员需要面对的挑战。本文将分享一些关于批量采集中时间管理和优化方面的实用技巧&#xff0c;帮助你提升爬虫工作效率。 1. 制定明确目标并设置合适频率 首先要明确自己所需获取数据的范…...

uniApp监听左右滑动事件

监听左右滑动事件的步骤 1. 添加需要监听滑动事件的元素 在你的页面中&#xff0c;添加需要监听滑动事件的元素。这可以是一个 view、swiper 或其他组件&#xff0c;取决于你的需求。例如&#xff1a; <template><view class"body" touchstart"touc…...

十八、MySQL添加外键?

1、外键 外键是用来让两张表的数据之间建立联系&#xff0c;从而保证数据的一致性和完整性。 注意&#xff0c;父表被关联的字段类型&#xff0c;必须和子表被关联的字段类型一致。 2、实际操作 &#xff08;1&#xff09;初始化两张表格&#xff1a; 子表&#xff1a; 父…...

图像文件的操作MATLAB基础函数使用

简介 MATLAB中的图像处理工具箱体统了一套全方位的标准算法和图形工具&#xff0c;用于进行图像处理、分析、可视化和算法开发。这里仅仅对常用的基础函数做个使用介绍。 查询图像文件的信息 使用如下函数 imfinfo(filename,fmt) 函数imfinfo返回一个结构体的info&#xff…...

【k8s】Kubernetes版本v1.17.3 kubesphere 3.1.1 默认用户登录失败

1.发帖&#xff1a; Kubernetes版本v1.17.3 kubesphere 3.11 默认用户登录失败 - KubeSphere 开发者社区 2. 问题日志&#xff1a; 2.1问题排查方法 &#xff1a; 用户无法登录 http://192.168.56.100:30880/ 2.2查看用户状态 kubectl get users [rootk8s-node1 ~]# k…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

【iOS】 Block再学习

iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。

2024 年&#xff0c;高端封装市场规模为 80 亿美元&#xff0c;预计到 2030 年将超过 280 亿美元&#xff0c;2024-2030 年复合年增长率为 23%。 细分到各个终端市场&#xff0c;最大的高端性能封装市场是“电信和基础设施”&#xff0c;2024 年该市场创造了超过 67% 的收入。…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...

LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考

目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候&#xff0c;显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...

StarRocks 全面向量化执行引擎深度解析

StarRocks 全面向量化执行引擎深度解析 StarRocks 的向量化执行引擎是其高性能的核心设计&#xff0c;相比传统行式处理引擎&#xff08;如MySQL&#xff09;&#xff0c;性能可提升 5-10倍。以下是分层拆解&#xff1a; 1. 向量化 vs 传统行式处理 维度行式处理向量化处理数…...

CppCon 2015 学习:Simple, Extensible Pattern Matching in C++14

什么是 Pattern Matching&#xff08;模式匹配&#xff09; ❝ 模式匹配就是一种“描述式”的写法&#xff0c;不需要你手动判断、提取数据&#xff0c;而是直接描述你希望的数据结构是什么样子&#xff0c;系统自动判断并提取。❞ 你给的定义拆解&#xff1a; ✴ Instead of …...