for循环顺序讲解

本文详细探讨了for循环的工作原理,重点在于循环执行的步骤顺序,以及通过实例分析了不同形式的for循环中条件更新的位置如何影响循环流程。作者揭示了for循环的步骤1243执行模式,并通过代码演示来澄清常见的误解。

因为今天查看代码的时候突然发现一个有意思的东西,那就是for循环调用的顺序,他的执行顺序是什么,后面查看后明了,做一个笔记用作自己记录学习。

一、基础的for循环

大家都知道for循环的一些规则,用于判断条件是否满足,不满足则退出

#include <stdio.h>
int main ()
{
	for (int i = 0; i < 3; i++)
	{
		printf("这是一个简单的循环i = %d\n", i);
	}
}

这样都知道,当I=3 的时候,我们的循环就退出,也就是整个函数会执行3次。

# ./a.out 
这是一个简单的循环i = 0
这是一个简单的循环i = 1
这是一个简单的循环i = 2

我们再换个写法

#include <stdio.h>
int main ()
{
    for (int i = 0; i < 3; ++i)
    {
        printf("这是一个简单的循环i = %d\n", i);
    }
}
# ./a.out
这是一个简单的循环i = 0
这是一个简单的循环i = 1
这是一个简单的循环i = 2

发现没,我将i++换成了 ++i,我们都知道i++和++i的区别在于,一个计算后执行+1,一个先+1再执行,但是我们打印出来的值都一样,这说明了什么。说明有可能我们最后一个条件没有被执行。

二、for执行的步骤

也就是说,如果我们将刚才的函数成步骤来进行执行
步骤1: int i = 0;
步骤2: i < 3;
步骤3: ++i;
步骤4: for循环函数内部的执行函数;

查看了对应的资料后,发现并不是按照我们想象中的 步骤 1234 进行执行的,而是按照步骤 1243,243,243这样进行执行的,也就是说当步骤2不满足条件的时候,我们剩下的步骤43都不会执行,而步骤1只执行一次。

为了更加清晰的展示,我们再写一个测试代码:

#include<stdio.h>
int out(char c)
{
    printf("%c\n", c);
    return 1;
}
void main()
{
    int i = 0;
    for (out('A'); out('B') && (i < 2); out('C'))
    {
        i++;
        out('D');
    }
}

# ./a.out test.c 
A
B
D
C
B
D
C
B

我们可以将输出做个一整理:
第一次循环输出 ABDC
第二次循环输出 BDC
第三次循环输出 B(这里不叫循环,因为这个循环根本就没有执行,只执行前面的一直为true的打印输出函数)

这样我们就很清晰的看到了整个for循环的顺序了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永不秃头的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值