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…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
CMake控制VS2022项目文件分组
我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
