逍遥自在学C语言 | for循环详解

news2024/11/23 17:11:30

前言

C语言中的循环结构时,for循环是最常用的一种。它允许重复执行一段代码,直到满足特定条件为止。

本文将详细介绍for循环的用法,并提供相关的可编译运行的C代码示例。

一、人物简介

  • 第一位闪亮登场,有请今后会一直教我们C语言的老师 —— 自在。

img

  • 第二位上场的是和我们一起学习的小白程序猿 —— 逍遥。

img

二、for循环的语法

for (初始化表达式; 循环条件; 循环后操作) {
    // 循环体代码
}
  • 初始化表达式在循环开始前执行,用于初始化循环计数器或其他变量。

  • 循环条件是一个布尔表达式,如果为真,则继续执行循环体;如果为假,则退出循环。

  • 循环后操作在每次循环迭代之后执行,通常用于更新循环计数器或其他相关变量。

三、for循环与while循环的区别

for循环while循环在功能上是等价的,但语法上有一些区别。主要区别如下:

  • for循环更适用于已知循环次数的情况,而while循环更适用于循环次数未知的情况。
  • for循环在一个语句中包含了循环的初始化、条件和循环后操作,更紧凑、简洁,适用于循环控制变量的初始化和更新。
  • while循环则需要在循环体外单独设置循环变量的初始化,循环条件在循环体内部判断,循环变量的更新也需要手动控制

四、for循环的灵活性

1、内置表达式

for循环的语法中,每个部分都可以是一个表达式。这意味着你可以在初始化、循环条件和循环后操作中使用任何合法的表达式。例如:

for (int i = 0; i < 5; i++) {
    // 循环体代码
}

2、外置表达式

for循环的各个部分也可以在循环外部定义,并在循环语句中使用。这样可以更灵活地控制循环条件和循环后操作。例如:

int i;
for (i = 0; i < 5; i++) {
    // 循环体代码
}

3、省略循环条件

for循环中,如果省略了循环条件部分,将会创建一个无限循环。这种情况下,循环将一直执行,直到使用break语句或其他方式跳出循环。例如:

for (;;) {
    // 循环体代码
    if (condition) {
        break;  // 在某个条件下跳出循环
    }
}

4、省略循环操作

for循环中,循环后操作部分也可以省略。这种情况下,需要在循环体内部手动更新循环计数器或其他相关变量。例如:

int i = 0;
for (; i < 5;) {
    // 循环体代码
    i++;  // 手动更新循环计数器
}

需要注意的是,灵活性应该与代码的可读性和维护性相平衡。选择合适的方式取决于具体的需求和代码结构。

最常见的情况是使用内置的for循环语法,其中包含初始化、循环条件和循环后操作,这样可以使代码更加清晰易懂。

五、for循环的应用

示例 1: 遍历数组

使用for循环可以轻松遍历数组或列表中的元素,并对它们进行操作或处理。

#include <stdio.h>

int main() 
{
    int numbers[] = {1, 2, 3, 4, 5};
    int sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += numbers[i];
    }

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

    return 0;
}
  • 运行结果

示例 2: 打印图形

通过嵌套for循环可以打印各种形状的图案,例如矩形、三角形等。

#include <stdio.h>

int main() {
    int rows = 5; // 三角形的行数

    for (int i = 1; i <= rows; i++) {
        // 打印每行的空格
        for (int j = 1; j <= rows - i; j++) {
            printf(" ");
        }

        // 打印每行的星号和间隔空格
        for (int j = 1; j <= 2 * i - 1; j++) {
            if (j % 2 == 0) {
                printf(" ");
            } else {
                printf("*");
            }
        }

        printf("\n");
    }

    return 0;
}
  • 运行结果

小结

通过这篇文章,我们学会了

1、for循环的语法

2、for循环的灵活表达方式

3、for循环的基本应用

📢欢迎各位 👍点赞 ⭐收藏 📝评论,如有错误请留言指正,非常感谢!

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

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

相关文章

生产·成本

短期生产成本 给定生产技术&#xff0c;管理者必须选择如何生产&#xff08;即使用什么样的要素组合&#xff09;使生产成本最小。 衡量成本 边际成本 长期成本与规模 长期平均成本&#xff08;LAC&#xff09;和长期边际成本&#xff08;LMC&#xff09; 规模经济 随着产…

【Web网站服务】Apache网页优化

Apache网页优化 一、网页压缩1.1网页压缩步骤 二、网页缓存三、隐藏版本信息五、Apache防盗链 一、网页压缩 在企业中&#xff0c;部署Apache后只采用默认的配置参数&#xff0c;会引发网站很多问题&#xff0c;换言之默认配置是针对以前较低的服务器配置的&#xff0c;以前的…

chatgpt赋能python:Python如何拆分list

Python如何拆分list 在Python编程中&#xff0c;我们经常需要对list进行拆分操作。拆分list可以帮助我们更好地处理数据&#xff0c;以便进一步进行分析、计算或可视化呈现。本文将介绍Python中如何拆分list&#xff0c;并且提供一些常用的拆分方式。 按固定大小进行拆分 我…

【AIGC】12、DINO | 针对 DETR-like 检测器的提升

文章目录 一、背景二、方法2.1 Contrastive DeNoising Training2.3 Mixed Query Selection2.4 Look Forward Twice 三、效果 论文&#xff1a;DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection 代码&#xff1a;https://github.com/IDEACVR/…

【JUC基础】15. Future模式

目录 1、前言 2、什么是Future 2.1、传统程序调用 3、JDK中的Future 3.1、Future相关API 3.2、FutureTask 3.2.1、FutureTask实现 3.2.2、FutureTask相关API 3.3、CompletableFuture 3.3.1、thenApply 3.3.2、异步任务编排之thenCompose() 3.3.3、异步任务编排之th…

南京市某高校计算机科学与技术专业性能测试与Loadrunner—考试试卷分析

XXX科技学院试卷 20 /20 学年 第 学期 课程所属部门&#xff1a; 课程名称&#xff1a; 课程编号&#xff1a; 考试方式&#xff1a;&#xff08;A、B、开、闭&#xff09;卷 使用班级&#xff1a; …

数据安全--16--数据采集阶段安全防护措施

本博客地址&#xff1a;https://security.blog.csdn.net/article/details/131033616 一、引子 数据安全采集阶段的防护措施主要是从三个方面来开展的&#xff0c;第一个是从个人数据主体采集方面&#xff0c;第二个是从外部机构采集方面&#xff0c;以上两个方面基本涵盖了数…

读改变未来的九大算法笔记05_数字签名

1. 数字签名”&#xff08;Digital Signature&#xff09; 1.1. 单词数字化&#xff08;digital&#xff09;意味着其“由数字字符串组成” 1.2. 任何数字化的东西都能被拷贝 1.3. “签名”的全部意义在于能被读取&#xff0c;但不能被除了作者的任何人拷贝&#xff08;也就…

linux(信号产生中)理论部分

1.实际执行信号的处理动作称为信号递达 2.信号从产生到递达之间的状态&#xff0c;称为信号未决&#xff08;Pending&#xff09; 3.进程可以选择阻塞某个信号的 ----------------------------------------------------------------------------------------------------------…

【JavaSE】Java(五十一):核心要点总结

文章目录 1. String str "love"; 和 String str new String("love);一样吗&#xff1f;2. 如何将字符串反转3. String类的常用方法有哪些?4. new String("sn") new String("ow")会创建几个对象&#xff1f; 1. String str “love”; 和…

「C/C++」C/C++ Lamada表达式

✨博客主页&#xff1a;何曾参静谧的博客 &#x1f4cc;文章专栏&#xff1a;「C/C」C/C程序设计 相关术语 Lambda表达式&#xff1a;是C11引入的一种函数对象&#xff0c;可以方便地创建匿名函数。与传统的函数不同&#xff0c;Lambda表达式可以在定义时直接嵌入代码&#xff…

JSON与storage

JSON JSON由来 ◼ 在目前的开发中&#xff0c;JSON是一种非常重要的数据格式&#xff0c;它并不是编程语言&#xff0c;而是一种可以在服务器和客户端之间传输的数据格式。 ◼ JSON的全称是JavaScript Object Notation&#xff08;JavaScript对象符号&#xff09;&#xff1a…

苹果震撼发布首款头显,搭配强悍Mac和iOS 17等全新产品,价值25000元!

&#x1f337; 博主 libin9iOak带您 Go to New World.✨ &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &#x1f30a; 《IDEA开发…

随机过程与排队论(一页纸总结)

参数为 λ 的泊松过程的点间间距是相互独立的随机变量&#xff0c;且服从均值为 1/λ 的 指数 分布。 病人以每小时3人的泊松流到达医院&#xff0c;设该医院只有一个医生服务且容量为无穷&#xff0c;医生服务的时间服从指数分布&#xff0c;并且平均服务一个病人为30分钟&am…

内联函数 C/C++

代码&#xff1a; file1.c #include<stdio.h>void spam(double v); void masp(double w);inline static double square(double); double square(double x) { printf("%s %s %d\n", __FILE__, __func__, __LINE__);return x * x; } int main() {double q …

chatgpt赋能python:Python如何将图片Resize

Python如何将图片Resize 在网页设计和开发过程中&#xff0c;图片大小和质量对于网站性能和用户体验至关重要。网站图片过大会影响页面加载时间&#xff0c;降低用户体验&#xff1b;同时&#xff0c;过小的图片也会影响网站排名&#xff0c;因为搜索引擎的排名算法很重视网站…

chatgpt赋能python:Python如何循环运行程序

Python如何循环运行程序 Python是一种强大的动态语言&#xff0c;具备灵活性和易用性。在编写Python程序时&#xff0c;一个常见的需求是循环运行程序&#xff0c;特别是需要定期执行一些任务的情况下。 本文将介绍如何在Python中实现循环运行程序&#xff0c;并提供一些例子…

chatgpt赋能python:Python如何循环执行

Python如何循环执行 循环是编程中最基本和常用的结构之一。Python作为一门高级编程语言&#xff0c;提供了多种循环执行的方式。在本文中&#xff0c;我们将介绍Python中的循环语句和循环控制语句以及其运行原理。 Python循环语句 for循环 for循环是Python中最常用的循环语…

chatgpt赋能python:Python列表:如何使用Python将数据存入列表中

Python列表&#xff1a;如何使用Python将数据存入列表中 Python是一种广泛使用的编程语言&#xff0c;由于其易于学习和可读性&#xff0c;在数据科学和分析领域中使用广泛。在本文中&#xff0c;我们将讨论如何使用Python将数据存储在列表中。 什么是Python列表&#xff1f;…

语言是世上最奇妙的事物,没有之一

语言是世上最奇妙的事物&#xff0c;没有之一 品牌是靠语言传播的 语言是咋产生的&#xff1f;太玄了 趣讲大白话&#xff1a;猪如果会说话&#xff0c;谁吃谁还不一定呢 【趣讲信息科技187期】 **************************** 《未来简史》的作者说 人有了语言&#xff0c;就有…