C语言循环学习
作为初学者,学习C语言中的循环结构是非常重要的,它们能让你轻松地重复执行代码。在C语言中,常用的循环结构主要有for循环和while循环。我们将从基本概念开始,逐步讲解如何使用这两种循环,并通过示例帮助你理解和练习。
1. 循环的基本概念
循环用于重复执行某段代码,直到满足特定的条件。在C语言中,有三种主要的循环结构:
for循环:当你知道循环的次数时,通常使用for循环。while循环:当你不确定需要执行多少次循环,只要条件为真时就一直循环。do-while循环:和while类似,但至少会执行一次。
循环的组成部分:
- 循环初始化:初始化控制变量,用于控制循环的执行。
- 循环条件:每次循环开始前检查的条件,决定是否继续循环。
- 循环体:需要重复执行的代码。
- 循环更新:每次循环结束后更新控制变量,以保证循环能够最终结束。
2. for 循环
for循环的语法:
for (初始化; 条件; 更新) {// 循环体
}
例子:
#include <stdio.h>int main() {// 使用for循环打印1到5for (int i = 1; i <= 5; i++) {printf("%d\n", i);}return 0;
}
- 初始化:
int i = 1,初始化循环变量i为1。 - 条件:
i <= 5,在i小于或等于5时继续循环。 - 更新:
i++,每次循环结束后i自增1。
(1) for循环中的常见操作
-
遍历数组:
for循环非常适合遍历数组中的每个元素。#include <stdio.h>int main() {int arr[5] = {10, 20, 30, 40, 50};for (int i = 0; i < 5; i++) {printf("%d\n", arr[i]);}return 0; } -
嵌套
for循环:用于遍历多维数组或实现复杂的嵌套逻辑。#include <stdio.h>int main() {for (int i = 1; i <= 3; i++) {for (int j = 1; j <= 3; j++) {printf("%d * %d = %d\n", i, j, i * j);}}return 0; }
3. while 循环
while循环的语法:
while (条件) {// 循环体
}
例子:
#include <stdio.h>int main() {int i = 1;// 使用while循环打印1到5while (i <= 5) {printf("%d\n", i);i++; // 更新控制变量,防止死循环}return 0;
}
- 条件:
i <= 5,当条件为真时,循环会一直执行。 - 更新:
i++,在每次循环结束时更新i,以避免死循环。
(1) while循环中的常见操作
-
读取用户输入:
while循环常用于处理用户输入,直到满足特定条件为止。#include <stdio.h>int main() {int num;printf("请输入一个正数(输入0结束循环):\n");while (1) {scanf("%d", &num);if (num == 0) {break; // 如果输入0,退出循环}printf("你输入的是: %d\n", num);}return 0; } -
处理未知次数的循环:当不知道需要循环多少次时,
while非常有用。int i = 10; while (i > 0) {printf("%d\n", i);i--; }
4. do-while 循环
do-while循环的语法:
do {// 循环体
} while (条件);
例子:
#include <stdio.h>int main() {int i = 1;// 使用do-while循环至少执行一次,然后判断条件do {printf("%d\n", i);i++;} while (i <= 5);return 0;
}
- 区别:
do-while循环至少执行一次,因为条件检查是在循环体执行之后进行的。
5. 循环的控制
(1) break 语句
break用于提前退出循环。当满足某个条件时,可以使用break跳出循环。
例子:
#include <stdio.h>int main() {for (int i = 1; i <= 10; i++) {if (i == 5) {break; // 当i等于5时,跳出循环}printf("%d\n", i);}return 0;
}
(2) continue 语句
continue用于跳过当前循环的剩余部分,直接进入下一次循环。
例子:
#include <stdio.h>int main() {for (int i = 1; i <= 5; i++) {if (i == 3) {continue; // 跳过本次循环,当i为3时,不输出}printf("%d\n", i);}return 0;
}
6. 循环练习
(1) 计算1到100的和
编写一个程序,使用for循环计算1到100的所有整数之和。
#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("1到100的和为: %d\n", sum);return 0;
}
(2) 打印乘法表
使用嵌套for循环打印九九乘法表。
#include <stdio.h>int main() {for (int i = 1; i <= 9; i++) {for (int j = 1; j <= i; j++) {printf("%d * %d = %d\t", i, j, i * j);}printf("\n");}return 0;
}
(3) 求数字的阶乘
编写一个程序,使用while循环计算一个给定数的阶乘。
#include <stdio.h>int main() {int num, fact = 1;printf("请输入一个正整数: ");scanf("%d", &num);int i = 1;while (i <= num) {fact *= i; // fact = fact * i;i++;}printf("%d 的阶乘是: %d\n", num, fact);return 0;
}
7. 学习技巧
- 多练习循环的使用:可以从简单的
for循环开始,逐步掌握while循环的条件判断。 - 注意控制变量的更新:确保循环体内的变量适当更新,防止死循环。
- 调试循环:在循环内打印控制变量的值,可以帮助你更好地理解循环的执行过程。
通过这些基础内容和练习,你应该能逐步掌握C语言中的for和while循环。在实际编程中,选择适合的循环结构并灵活运用是非常重要的。
相关文章:
C语言循环学习
作为初学者,学习C语言中的循环结构是非常重要的,它们能让你轻松地重复执行代码。在C语言中,常用的循环结构主要有for循环和while循环。我们将从基本概念开始,逐步讲解如何使用这两种循环,并通过示例帮助你理解和练习。…...
职业技能大赛-自动化测试笔记(Unitest)分享-3
前言 UnitTest是Python标准库中的一个模块,用于编写和执行单元测试。它提供了一组断言方法,用于验证代码的输出和状态是否符合预期。通过UnitTest框架,我们可以编写可重复执行的测试用例,并使用命令行工具或IDE轻松运行这些测试。在大多数情况下,UnitTest框架已经包含在Py…...
rocky9.2的lvs的NAT模式下的基本使用的详细示例
文章目录 前言什么是LVS?(Linux Virtual Server)LVS的组成1. 负载均衡器(Load Balancer)2. 后端服务器池(Real Servers)3. IPVS(IP Virtual Server)4. 调度算法(Schedul…...
AI健身之俯卧撑计数和姿态矫正-角度估计
在本项目中,实现了Yolov7-Pose用于人体姿态估计。以下是如何在Windows 11操作系统上设置和运行该项目的详细步骤。 环境准备 首先,确保您的计算机已经安装了Anaconda。Anaconda是一个开源的Python发行版本,它包含了conda、Python以及众多科…...
Java ETL - Apache Beam 简介
基本介绍 Apache Beam是一个用于大数据处理的开源统一编程模型。它允许用户编写一次代码,然后在多个批处理和流处理引擎上运行,如Apache Flink、Apache Spark和Google Cloud Dataflow等。Apache Beam提供了一种简单且高效的方式来实现数据处理管道&…...
使用 Fairseq 进行音频预训练:Train a wav2vec 2.0 base model配置与实现
使用 Fairseq 进行音频预训练:配置与实现 简介 随着深度学习技术的不断发展,音频预训练在语音识别和自然语言处理领域取得了显著进展。Fairseq 是由 Facebook AI Research 开发的开源序列建模工具包,广泛应用于各种自然语言处理任务,包括音频预训练。本文将介绍如何使用 …...
全面详尽的 PHP 环境搭建教程
目录 目录 PHP 环境搭建概述 在 Windows 上搭建 PHP 环境 使用集成环境 XAMPP 安装步骤 配置和测试 常用配置 手动安装 Apache、PHP 和 MySQL 安装 Apache 安装 PHP 安装 MySQL 配置 PHP 连接 MySQL 在 Linux 上搭建 PHP 环境 使用 LAMP 方案 安装 Apache 安装 …...
fiddler抓包06_抓取https请求(chrome)
课程大纲 首次安装Fiddler,抓https请求,除打开抓包功能(F12)还需要: ① Fiddler开启https抓包 ② Fiddler导出证书; ③ 浏览器导入证书。 否则,无法访问https网站(如下图࿰…...
【在Linux世界中追寻伟大的One Piece】网络命令|验证UDP
目录 1 -> Ping命令 2 -> Netstat命令 3 -> Pidof命令 4 -> 验证UDP-Windows作为client访问Linux 4.1 -> UDP client样例 1 -> Ping命令 Ping命令是一种网络诊断工具,它使用ICMP(Internet Control Message Protocol,互联网控制消…...
qt-C++笔记之Q_DECLARE_METATYPE和qRegisterMetaType
qt-C笔记之Q_DECLARE_METATYPE和qRegisterMetaType code review! 文章目录 qt-C笔记之Q_DECLARE_METATYPE和qRegisterMetaType一.Q_DECLARE_METATYPE使用方法应用场景 二.为什么需要注册类型?三.使用 Q_DECLARE_METATYPE 处理自定义类型的简短示例3.1.自定义类型定…...
Shader 中的光源
1、Shader 开发中常用的光源属性 Unity当中一共支持四种光源类型: 平行光(Directional)点光源(Point)聚光灯(Spot)面光源(Area)— 面光源仅在烘焙时有用 不管光源类型到…...
【django】局域网访问django启动的项目
目录 一、现象 二、django的settings.py配置 三、启动django项目 四、获取本机IP 五、局域网机器访问 前言:本机使用pycharm启动的项目,局域网其他机器访问 一、现象 django开发了接口,想给其他同志访问接口测试,无法通过I…...
【计算机组成原理】主存储器深度解析
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
docker在基础镜像上,比如rockylinux,如何配置yum仓库
在基础镜像rockylinux上 启动的容器,没有yum仓库,就执行不了一些命令 ~]docker run -itd --name linux rockylinux:8.5~]# docker exec -it linux bash /]# ifconfig bash: ifconfig: command not found/]# vim bash: vim: command not found …...
libtorch落地AI项目的一些总结
总结 1. 为啥C 写AI C 是一个非常强大的编程语言,它具有非常强大的计算能力,可以处理非常大的数据集,并且可以非常快速地完成计算。很多项目需要嵌入式部署,C 是一个非常适合的编程语言。C 可以非常快速地完成计算,并…...
ffmpeg面向对象——参数配置秘密探索及其设计模式
目录概览 0.参数配置对象流程图0.1 用到的设计模式0.2 与朴素思想的对比 1.参数传递部分1.1 AVDictionary字典容器类1.1.1 类定义及类图1.1.2 构造函数1.1.3 析构函数1.1.4 设置/读取等配置参数 1.2 参数配置实例 2.参数配置生效部分2.1参数过滤模块2.1.1 AVOption类2.1.1.1 类…...
华为eNSP使用详解
eNSP(Enterprise Network Simulation Platform)是华为提供的一款网络仿真平台,它允许用户在没有真实设备的情况下进行网络实验和学习网络技术。eNSP可以模拟各种网络设备,如交换机、路由器、防火墙等,并支持创建多种网…...
一文入门生成式AI(理解ChatGPT的原理)
一、什么是生成式AI? 以ChatGPT为代表的生成式AI,是对已有的数据和知识进行向量化的归纳,总结出数据的联合概率。从而在生成内容时,根据用户需求,结合关联字词的概率,生成新的内容。 可以这么联想&#x…...
C# 中Faker
在 C# 中,Faker 类通常用于生成模拟数据(也称为虚拟数据、测试数据),这对于开发、测试以及演示应用程序非常有用。一个流行的库叫做 Faker,它提供了一种简单的方式来生成各种随机数据。 安装 Faker 库 要使用 Faker …...
数据权限的设计与实现系列9——前端筛选器组件Everright-filter集成框架开发2
功能实现 规则转换为 SQL 片段 规则解析 首先我们来构造一个典型的规则,包括两个条件组,每个组由两个条件组成,由且与或两种逻辑关系,如下图: 然后看看生成的规则,如下: {"filt…...
如何通过DeepEval解决LangChain应用的可观测性与评估难题
如何通过DeepEval解决LangChain应用的可观测性与评估难题 【免费下载链接】deepeval The LLM Evaluation Framework 项目地址: https://gitcode.com/GitHub_Trending/de/deepeval DeepEval作为专业的LLM评估框架,为LangChain开发者提供了从测试到生产监控的完…...
LRCGET:告别手动搜索,实现本地音乐歌词批量下载的完整指南
LRCGET:告别手动搜索,实现本地音乐歌词批量下载的完整指南 【免费下载链接】lrcget Utility for mass-downloading LRC synced lyrics for your offline music library. 项目地址: https://gitcode.com/gh_mirrors/lr/lrcget 你是否拥有大量本地音…...
基于FPGA的嵌入式频谱分析仪设计:低功耗实时信号处理方案
1. 项目概述:为什么要在FPGA上做频谱分析仪?做射频测试的工程师,对频谱分析仪肯定不陌生。实验室里动辄几十万上百万的台式机,性能强悍,功能全面,但有个问题:它离不开实验室。当你需要做外场测试…...
Chrome插件开发实战指南:从入门到发布的完整开发教程
随着浏览器生态不断发展,Chrome插件(Chrome Extension)已经成为提高工作效率、实现自动化操作、数据采集以及浏览器功能增强的重要工具。无论是广告拦截、网页翻译、SEO分析,还是自动化办公,背后几乎都离不开Chrome插件技术。 尤其是在AI时代,Chrome插件已经不仅仅是“浏…...
AI圈今日大事(2026-05-21)
AI圈今日大事(2026-05-21)1. 阿里云峰会:真武M890芯片 Qwen3.7-Max 双料齐发今日阿里云峰会上,阿里平头哥正式发布新一代训推一体AI芯片 真武M890:性能:相比前代真武810E提升3倍,内置144GB显存…...
QQ音乐格式转换终极指南:如何3步将.qmc文件转为MP3/FLAC
QQ音乐格式转换终极指南:如何3步将.qmc文件转为MP3/FLAC 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾在QQ音乐下载了心爱的歌曲,却发现它…...
告别串口助手:用Python脚本实现YMODEM协议自动升级嵌入式固件(附源码)
告别串口助手:用Python脚本实现YMODEM协议自动升级嵌入式固件(附源码) 在嵌入式设备量产测试和远程维护场景中,传统的手动串口工具操作已成为效率瓶颈。每次固件升级都需要人工介入,不仅耗时费力,还容易因…...
MulimgViewer终极指南:如何用一个界面管理多张图片,告别繁琐切换
MulimgViewer终极指南:如何用一个界面管理多张图片,告别繁琐切换 【免费下载链接】MulimgViewer MulimgViewer is a multi-image viewer that can open multiple images in one interface, which is convenient for image comparison and image stitchin…...
小爱音箱音乐播放限制破解实战:从基础配置到高级玩法深度解析
小爱音箱音乐播放限制破解实战:从基础配置到高级玩法深度解析 【免费下载链接】xiaomusic 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaomusic 你是否曾经对着小爱音箱说"播放周杰伦…...
注意力机制:多头注意力机制、分组查询注意力机制、多查询注意力机制理论+代码
文章目录导语1.注意力机制2.多头注意力机制3.多查询注意力机制4.分组查询注意力机制5.三者对比导语 注意力机制作为transformer体系中最核心的方法,是NLP、LLM等都绕不开的一部分,多头注意力机制是transformer模型提出的“基石”,分组查询注…...
