11.05学习

一、for循环语句的相关知识点

C语言中的 for 循环是一种基本的控制结构,用于重复执行一段代码直到满足某个条件。

1. 基本语法:

for (初始化表达式;条件表达式;更新表达式) {

// 循环体

}

初始化表达式:在循环开始之前执行一次,通常用于设置循环变量的初始值。

条件表达式:在每次循环迭代之前检查,如果结果为真(非零),则执行循环体;如果结果为假(零),则退出循环。

更新表达式:在每次循环迭代之后执行,通常用于更新循环变量的值。

2. 循环体:

可以是单个语句,也可以是多个语句组成的复合语句(用花括号 {} 包围)。

3. 无限循环:

如果条件表达式总是为真, for 循环将变成无限循环。

 

for(;;) {

// 无限循环体

}

4. 空操作:

如果不需要初始化、条件检查或更新,可以省略相应的部分。

 

for(; ; ) {

// 循环体

}

5. 多个变量更新:

更新表达式可以包含多个操作,使用逗号分隔。

 

for (i = 0; i < 10; i++, j--) {

// 循环体

}

6. 跳转语句:

在 for 循环体内可以使用 break 、 continue 、 return 等跳转语句来控制循环的流程。

 break :立即退出循环。

 continue :跳过当前迭代,继续下一次迭代。

 return :退出函数并返回指定值。

7. 嵌套循环:

 for 循环可以嵌套在另一个 for 循环内部,形成多维循环。

8. 变量作用域:

在 for 循环的初始化部分声明的变量,其作用域仅限于 for 循环体内部。

9. 性能考虑:

尽量减少在条件表达式中的复杂计算,以避免不必要的性能开销。

10. 与 while 和 do-while 循环的比较:

 for 循环通常用于已知迭代次数的情况。

 while 循环和 do-while 循环适用于迭代次数未知的情况。

 

 

例题

示例1:基本的 for 循环

#include <stdio.h>

 

int main() {

int i;

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

printf("%d ", i);

}

return 0;

}

这个程序将打印0到4的数字。

 

示例2:使用 for 循环打印乘法表

#include <stdio.h>

 

int main() {

int i, j;

for (i = 1; i <= 9; i++) {

for (j = 1; j <= i; j++) {

printf("%d*%d=%d ", j, i, i * j);

}

printf("\n");

}

return 0;

}

这个程序将打印1到9的乘法表。

 

示例3:使用 for 循环计算总和

#include <stdio.h>

 

int main() {

int i, sum = 0;

for (i = 1; i <= 100; i++) {

sum += i;

}

printf("Sum = %d\n", sum);

return 0;

}

这个程序计算1到100的整数总和。

 

示例4:使用 for 循环打印奇数

#include <stdio.h>

 

int main() {

int i;

for (i = 1; i <= 10; i += 2) {

printf("%d ", i);

}

return 0;

}

这个程序将打印1到10之间的所有奇数。

 

示例5:使用 for 循环打印斐波那契数列

#include <stdio.h>

 

int main() {

int i, t1 = 0, t2 = 1, nextTerm;

for (i = 1; i <= 10; ++i) {

printf("%d ", t1);

nextTerm = t1 + t2;

t1 = t2;

t2 = nextTerm;

}

return 0;

}

这个程序将打印斐波那契数列的前10个数字。

 

示例6:使用 for 循环和数组

#include <stdio.h>

 

int main() {

int i, numbers[] = {10, 20, 30, 40, 50};

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

printf("%d ", numbers[i]);

}

return 0;

}

这个程序将打印数组中的所有元素。

 

示例7:使用 for 循环和字符串

#include <stdio.h>

 

int main() {

char str[] = "Hello, World!";

for (int i = 0; str[i] != '\0'; i++) {

printf("%c", str[i]);

}

return 0;

}

这个程序将打印字符串中的每个字符,直到遇到空字符。

这些示例展示了 for 循环在C语言中的多样性和灵活性,适用于各种不同的编程任务。

 

 

 

二、do-while循环语句相关知识点

C语言中的 do-while 循环是一种后测试循环结构,这意味着循环体至少执行一次,然后根据条件判断是否继续执行循环。

1. 基本语法:

do {

// 循环体

} while (条件表达式);

循环体:包含在 do 和 while 之间的代码块,至少执行一次。

条件表达式:在每次循环体执行完毕后进行测试,如果结果为真(非零),则继续执行循环体;如果结果为假(零),则退出循环。

2. 至少执行一次:

与 for 和 while 循环不同, do-while 循环保证循环体至少执行一次,因为条件测试是在循环体执行之后进行的。

3. 条件表达式:

条件表达式必须返回一个整数,如果返回非零值,循环继续执行;如果返回零,循环结束。

4. 无限循环:

如果条件表达式总是为真, do-while 循环将变成无限循环。

 

do {

// 循环体

} while (1);

5. 跳转语句:

在 do-while 循环体内可以使用 break 、 continue 、 return 等跳转语句来控制循环的流程。

 break :立即退出循环。

 continue :不适用,因为 do-while 循环没有“当前迭代”的概念。

 return :退出函数并返回指定值。

6. 嵌套循环:

 do-while 循环可以嵌套在另一个循环内部,形成多维循环。

7. 变量作用域:

在 do-while 循环中声明的变量,其作用域通常限于整个函数或代码块,除非在循环内部使用 for 循环的初始化部分声明。

8. 性能考虑:

尽量减少在条件表达式中的复杂计算,以避免不必要的性能开销。

9. 与 for 和 while 循环的比较:

 do-while 循环适用于至少需要执行一次循环体的情况,而 while 循环适用于在进入循环体之前需要先进行条件测试的情况。

 for 循环通常用于已知迭代次数的情况,而 do-while 循环适用于迭代次数未知或至少需要执行一次循环体的情况。

10. 使用场景:

当你需要确保循环体至少执行一次,并且每次执行后都需要重新评估条件时, do-while 循环是一个合适的选择。

 

三、while循环语句相关知识点

C语言中的 while 循环是一种前测试循环结构,这意味着在执行循环体之前会先检查条件是否满足。

1. 基本语法:

while (条件表达式) {

// 循环体

}

条件表达式:在每次循环迭代之前进行测试,如果结果为真(非零),则执行循环体;如果结果为假(零),则退出循环。

2. 零次执行的风险:

如果条件表达式在循环开始时就为假, while 循环的循环体将不会执行,这可能导致一些初始化代码未被执行。

3. 无限循环:

如果条件表达式总是为真, while 循环将变成无限循环。

 

while (1) {

// 无限循环体

}

4. 跳转语句:

在 while 循环体内可以使用 break 、 continue 、 return 等跳转语句来控制循环的流程。

 break :立即退出循环。

 continue :跳过当前迭代,继续下一次迭代。

 return :退出函数并返回指定值。

5. 嵌套循环:

 while 循环可以嵌套在另一个循环内部,形成多维循环。

6. 变量作用域:

在 while 循环中声明的变量,其作用域通常限于整个函数或代码块,除非在循环内部使用 for 循环的初始化部分声明。

7. 性能考虑:

尽量减少在条件表达式中的复杂计算,以避免不必要的性能开销。

8. 与 for 和 do-while 循环的比较:

 while 循环适用于在进入循环体之前需要先进行条件测试的情况,而 do-while 循环适用于至少需要执行一次循环体的情况。

 for 循环通常用于已知迭代次数的情况,而 while 循环适用于迭代次数未知的情况。

9. 使用场景:

当你需要在每次迭代之前检查条件,并且可能在第一次迭代之前就需要跳过循环体时, while 循环是一个合适的选择。

10. 条件表达式的控制:

条件表达式可以是任何返回整数的表达式,包括逻辑表达式、关系表达式、算术表达式等。

11. 循环控制:

在 while 循环中,通常需要有一种机制来改变条件表达式的值,否则很容易形成无限循环。

12. 与 for 循环的转换:

有时候, while 循环可以与 for 循环相互转换,尽管这可能会改变代码的风格和可读性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/4488.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

连锁餐饮企业-凡塔斯,用千里聆RPA搭建用户评价管理系统,提升门店服务满意度

凡塔斯是大型连锁餐饮企业昊澜餐饮集团旗下餐饮品牌&#xff0c;是牛排自助餐头部品牌&#xff0c;旗下拥有凡塔斯、百分好、食物链KING自助烤肉及餐饮人才商学院等多个行业知名品牌。 创立至今&#xff0c;集团管理门店已发展到福建、广东、江西、浙江等十多个省市&#xff0c…

设备状态监控一定要直观,可视化大屏最适合这个工作

一、引言 在现代工业生产和各类设施运行中&#xff0c;设备的稳定运行至关重要。为了确保设备能够高效、可靠地工作&#xff0c;及时了解设备的状态是关键。而设备状态监控一定要直观&#xff0c;只有这样才能让操作人员和管理人员迅速掌握设备的运行情况&#xff0c;及时发现…

xxe靶机实战

靶机地址&#xff1a;https://www.vulnhub.com/entry/xxe-lab-1,254/ 下载好后解压 直接拖拽.ovf格式的文件到虚拟机里 打开kali扫描主机,靶机开着或者后台运行就行 arp-scan -I eth0 -l 扫描出来目标靶机ip地址192.168.142.145 nmap扫描端口 nmap -A -sS -T4 -P- --min-rat…

钉钉内集成第三方免密登录(Vue+.Net)

需要实现的效果就是在钉钉内点击应用能跳转到第三方网站并且免密登录 1.登录钉钉PC端管理后台 2.通过管理后台进去开发者后台 3.应用开发 创建H5微应用 4.应用创建成功后直接点权限管理全部授权 5.设置H5登录地址 6. 应用管理发布 至此需要配置的步骤全部已完成&#xff0c;…

画动态爱心(Python-matplotlib)

介绍 氵而已 由于用的是 AI&#xff0c;注释得非常清楚&#xff0c;自己改改也可以用 代码 # -*- coding: utf-8 -*- # Environment PyCharm # File_name 尝试1 |User Pfolg # 2024/11/05 22:45 import numpy as np import matplotlib.pyplot as plt import matplo…

理解 WordPress | 第五篇:页面构建器选择指南

WordPress 专题致力于从 0 到 1 搞懂、用熟这种可视化建站工具。 第一阶段主要是理解。 第二阶段开始实践个人博客、企业官网、独立站的建设。 如果感兴趣&#xff0c;点个关注吧&#xff0c;防止迷路。 什么是 WordPress 构建器 WordPress 构建器&#xff08;Page Builder&am…

硬件基础07 功率放大器

一、功放理论 在多级放大电路中&#xff0c;输出信号往往要送去驱动—定的装置。例如&#xff0c;这类装置包括收音机中扬声器的音圈、电动机的控制绕组等。多级放大电路除了应有电压放大级外&#xff0c;还要求有一个能输出一定信号功率的输出级。这类主要用于向负载提供功率的…

敬业签适配鸿蒙:开启多端协同新篇章

纯血鸿蒙&#xff0c;即华为推出的原生鸿蒙操作系统&#xff08;HarmonyOS Next&#xff09;&#xff0c;是一款面向全场景的分布式操作系统&#xff0c;它以其独特的微内核设计和多设备协同能力&#xff0c;引领着智能终端的新潮流。鸿蒙系统的推出&#xff0c;不仅标志着中国…

Matlab车牌识别课程设计报告模板(附源代码)

目 录 一&#xff0e;课程设计目的……………………………………………3 二&#xff0e;设计原理…………………………………………………3 三&#xff0e;详细设计步骤……………………………………………3 四. 设计结果及分析…………………………………………18 五. …

Apache HTTPD 换行解析漏洞(CVE-2017-15715)

Apache HTTPD是一款HTTP服务器&#xff0c;它可以通过mod_php来运行PHP网页。其2.4.0~2.4.29版本中存在一个解析漏洞&#xff0c;在解析PHP时&#xff0c;1.php\x0A将被按照PHP后缀进行解析&#xff0c;导致绕过一些服务器的安全策略。 上传一个1.php&#xff0c;被拦截 在1.p…

用qrcode和pyzbar分别生成和解码二维码

我用的是anaconda环境&#xff0c;在anaconda命令行下&#xff0c;用pip分别安装以下库文件&#xff1a; pip install opencv-python pip install numpy pip install pillow pip install myqr pip install qrcode pip install zxing 生成二维码 打开pycharm&#xff0c…

软件测试学习笔记丨Vue学习笔记-基本介绍

本文转自测试人社区&#xff0c;原文链接&#xff1a;https://ceshiren.com/t/topic/23458 编译器使用&#xff1a;VScode 推荐插件 JavaScript (ES6) code snippets&#xff1a;包含 ES6 语法中的 JS 代码段Vetur&#xff1a;VSCode 支持 VUE 的工具Auto Close Tag&#xff…

【简历】25届江西某一本大学JAVA简历:不能把大厂的技能写到中厂上

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 校招的第一法则就是必须要确定校招层次。 开发岗分为大中小厂&#xff0c;不同的层次对学校背景、时间点、项目和考点的要求都不太一样&#xff0c…

微信订阅消息

一、订阅消息模板 进入微信小程序平台&#xff0c;开通订阅消息后进行模板申请 1.申请后得到模板id 2.直接在数据库中插入模板 二、创建订阅消息模板参数类 1.进入相关目录&#xff0c;创建订阅消息发送参数模板类&#xff0c;类属性根据模板的详细类容进行设置 2.在相应…

Vue3 + Element Plus简单使用案例及【eslint】报错处理

本电脑Vue环境已安装正常使用 博主使用npm 包管理器安装 Element Plus.有问题评论区帮忙指正,感谢阅读. 在完成的过程中如果遇到eslint报错 Parsing error &#xff1a;Unexpected token { eslint 这个报错&#xff0c;也可以尝试第7部分报错处理解决。 目录 1.新建项目 2…

MySQL索引、B+树相关知识总结

MySQL索引、B树相关知识汇总 一、有一个查询需求&#xff0c;MySQL中有两个表&#xff0c;一个表1000W数据&#xff0c;另一个表只有几千数据&#xff0c;要做一个关联查询&#xff0c;如何优化&#xff1f;1、为关联字段建立索引2、小表驱动大表 二、b树和b树的区别1、更高的查…

AI绘画凉了吗?都快2025年了你还没搭上AI这一便车吗?

在科技飞速发展的今天&#xff0c;AI 绘画如同一场绚丽的艺术风暴&#xff0c;席卷了整个创意领域。它以其独特的魅力和强大的功能&#xff0c;为艺术家、设计师以及普通爱好者们带来了前所未有的创作体验。 在数字化时代的浪潮下&#xff0c;人工智能(AI)技术正以前所未有的速…

常见 CSS 选择器用法

"Be Your Own Hero" CSS选择器是一种模式&#xff0c;用于选择需要应用CSS样式的HTML元素。以下是一些基本的CSS选择器类型&#xff1a; 1.标签选择器 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&…

AIDD - 分子药物发现的计算方法现状总结

分子药物发现的计算方法现状总结 01 引言 药物发现的流程近年来因计算技术的飞速进步而发生了深刻变革。**计算辅助药物设计&#xff08;CADD, Computer-Aided Drug Design&#xff09;和人工智能驱动药物发现&#xff08;AIDD, Artificial Intelligence-Driven Drug Discover…

机器学习—代码中的推理

TensorFlow是实现深度学习算法的领先框架之一&#xff0c;另一个流行的工具是圆周率火炬&#xff0c;在这篇文章中&#xff0c;我们专注于张量流&#xff0c;那么如何在代码中实现推理&#xff1f; 让我们深入了解神经网络的一个非凡之处&#xff0c;同样的算法可以应用于这么…