首页 > 其他分享 >逍遥自在学C语言 | for循环详解

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

时间:2023-06-05 23:46:03浏览次数:58  
标签:初始化 循环体 逍遥自在 代码 C语言 int 详解 表达式 循环

前言

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循环的基本应用

标签:初始化,循环体,逍遥自在,代码,C语言,int,详解,表达式,循环
From: https://www.cnblogs.com/Wayne123/p/17459314.html

相关文章

  • C语言编程语法—输入与输出
    当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C语言提供了一系列内置的函数来输出数......
  • 详解JavaScript中的__proto__和prototype
    目录一、JS的对象创建方法二、双对象法则三、__proto__和prototypeprototype是什么?__proto__又是什么?对于JS来说,__proto__和prototype的区别是个绕不开的话题。本文就试图从它们的根本上说清楚它们是什么,又有什么区别,所以本文会从JS的对象开始说起,以其期待把本文的主题......
  • Link-Cut-Tree详解
    引入树的链剖分有三种,重链剖分、实链剖分和长链剖分。实链剖分与其他两种不同的是,实儿子是可以根据需求转换的,而不是像另两种有着固定的定义方式。因此,实链剖分一般用来维护动态的树上问题。例如删边、加边和修改点权,以及树链剖分的常规操作(当然,要始终维持森林的性质)。辅助树......
  • GDPU C语言 天码行空11
    ......
  • GDPU C语言 天码行空12
    ......
  • 4.3 Java Pipe管道详解
    4.3Pipe       Java管道Pipe是用于线程间通信的,但是需要注意的是,Java中的Pipe是用于一个虚拟机中的线程之间通信的,不能用于进程之间通信。Java管道和Unix/Linux中的管道Pipe的作用是不同的,Unix/Linux中的管道是用于进程之间通讯,是不同Process之间。而Java是同一个虚拟机......
  • 树之深度优先遍历算法详解(DFS实现) LeetCode94
           本文以如下树结构为例深度优先(DeepFirstSearch)       树的孩子称作子树,对于一个树进行深度优先遍历,即将其某一子树下所有节点遍历完再去遍历其他子树。遍历的顺序以根为参照可分为先序遍历,中序遍历,后序遍历。遍历方式描述先序遍历根左右中序遍历左根右后......
  • Spring Bean生命周期详解
    本文结合Spring源码5.1.7.RELEASE,详细分析SpringBean生命周期,包括主要流程以及Spring一系列的扩展方法,最后通过测试实例演示主要步骤。Spring提供的Bean扩展方法大致分为三类,一类是BeanPostProcessor接口,一类是BeanFactoryProcessor接口,还有一类是Aware接口。Sprin......
  • Transformer结构及其应用详解——GPT、BERT、MT-DNN、GPT-2
    前言 本文首先详细介绍Transformer的基本结构,然后再通过GPT、BERT、MT-DNN以及GPT-2等基于Transformer的知名应用工作的介绍并附上GitHub链接,看看Transformer是如何在各个著名的模型中大显神威的。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专......
  • 必读:学习C语言编程的路线图
    学习C语言编程,可以丰富编程思维的训练和经验,以下是一些学习C语言编程的路线图:设置开发环境:在计算机上安装C编译器。GNU编译器集合(GCC)是一个流行的选择,适用于Windows、macOS和Linux等各种操作系统。安装IDE编程环境,推荐VSCode,有丰富的插件可以辅助编程,并且辅助学习编程。使用......