百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

C语言之循环(for、while)

itomcoil 2025-03-13 16:34 11 浏览

在C语言中,循环是一种重要的控制结构,用于重复执行某段代码,直到满足特定条件为止。循环逻辑可以帮助我们简化重复性任务,提高代码的效率和可读性。C语言提供了三种主要的循环结构:for 循环、while 循环和 do-while 循环。下面我们将详细讲解这些循环的语法、用法和常见场景。


1.for 循环

语法

for (初始化; 条件; 更新) {
    // 循环体
}
  • 初始化:在循环开始前执行一次,通常用于初始化循环变量。
  • 条件:每次循环开始前检查的条件。如果条件为true,则执行循环体;否则退出循环。
  • 更新:每次循环结束后执行,通常用于更新循环变量。

示例

#include 

int main() {
    for (int i = 0; i < 5; i++) {
        printf("%d ", i);
    }
    return 0;
}
  • 输出:0 1 2 3 4
  • 解释:
    • int i = 0:初始化循环变量i为0。
    • i < 5:检查i是否小于5,如果为true,则执行循环体。
    • i++:每次循环结束后,将i的值加1。

常见用途

  • 遍历数组。
  • 执行固定次数的循环。

2.while 循环

语法

while (条件) {
    // 循环体
}
  • 条件:每次循环开始前检查的条件。如果条件为true,则执行循环体;否则退出循环。

示例

#include 

int main() {
    int i = 0;
    while (i < 5) {
        printf("%d ", i);
        i++;
    }
    return 0;
}
  • 输出:0 1 2 3 4
  • 解释:
    • i < 5:检查i是否小于5,如果为true,则执行循环体。
    • i++:每次循环结束后,将i的值加1。

常见用途

  • 当循环次数不确定时使用。
  • 例如,读取用户输入直到输入有效值。

3.do-while 循环

语法

do {
    // 循环体
} while (条件);
  • 条件:每次循环结束后检查的条件。如果条件为true,则继续循环;否则退出循环。
  • 特点:do-while 循环至少会执行一次循环体。

示例

#include 

int main() {
    int i = 0;
    do {
        printf("%d ", i);
        i++;
    } while (i < 5);
    return 0;
}
  • 输出:0 1 2 3 4
  • 解释:
    • 先执行循环体,然后检查i < 5是否为true。
    • 即使条件一开始为false,循环体也会至少执行一次。

常见用途

  • 当循环体至少需要执行一次时使用。
  • 例如,菜单驱动的程序。

4.循环控制语句

在循环中,可以使用以下控制语句来改变循环的执行流程:

break

  • 用于立即退出当前循环。
  • 示例:
for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 当 i 等于 5 时退出循环
    }
    printf("%d ", i);
}

continue

  • 用于跳过当前循环的剩余部分,直接进入下一次循环。
  • 示例:
for (int i = 0; i < 5; i++) {
    if (i == 2) {
        continue; // 当 i 等于 2 时跳过本次循环
    }
    printf("%d ", i);
}

5.嵌套循环

在一个循环内部可以再嵌套另一个循环,称为嵌套循环。嵌套循环常用于处理多维数据,例如二维数组。

示例

#include 

int main() {
    for (int i = 1; i <= 3; i++) {
        for (int j = 1; j <= 3; j++) {
            printf("(%d, %d) ", i, j);
        }
        printf("\n");
    }
    return 0;
}
  • 输出:
  • 复制
  • (1, 1) (1, 2) (1, 3) (2, 1) (2, 2) (2, 3) (3, 1) (3, 2) (3, 3)

6.无限循环

如果循环条件始终为true,则循环会无限执行下去,称为无限循环。通常使用break语句来退出无限循环。

示例

#include 

int main() {
    while (1) { // 条件始终为 true
        printf("无限循环\n");
        break; // 退出循环
    }
    return 0;
}

7.总结

循环类型

语法

特点

for

for (初始化; 条件; 更新)

适合已知循环次数的场景。

while

while (条件)

适合循环次数不确定的场景。

do-while

do { ... } while (条件);

至少执行一次循环体,适合需要先执行再检查的场景。

break

break;

立即退出当前循环。

continue

continue;

跳过当前循环的剩余部分,进入下一次循环。

掌握循环逻辑是编写高效C语言程序的关键!通过灵活使用循环和控制语句,可以轻松处理重复性任务和复杂逻辑。

相关推荐

selenium(WEB自动化工具)

定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...

开发利器丨如何使用ELK设计微服务中的日志收集方案?

【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...

高并发系统设计:应对每秒数万QPS的架构策略

当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...

2025 年每个 JavaScript 开发者都应该了解的功能

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...

JavaScript Array 对象

Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...

Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战

刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...

动力节点最新JavaScript教程(高级篇),深入学习JavaScript

JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...

一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code

当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...

「晚安·好梦」努力只能及格,拼命才能优秀

欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...

JavaScript 中 some 与 every 方法的区别是什么?

大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...

10个高效的Python爬虫框架,你用过几个?

小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...

12个高效的Python爬虫框架,你用过几个?

实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...

pip3 install pyspider报错问题解决

运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...

PySpider框架的使用

PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...

「机器学习」神经网络的激活函数、并通过python实现激活函数

神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...