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…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用
1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...
