For循环的深入理解

今天看书的时候看到了for循环,看完这个列子之后对for循环的理解更加深入了,分享给大家。

for(initialize; test; update)
{
    statement;
}
initialize表达式在执行for语句之前只执行一次;然后对test表达式求值,如果表达式的值为真(或非零),执行循环一次;接着对update表达式求值,并再次检查test表达式。这是对for循环的定义,下面以具体的示例来解释:

#include<stdio.h>
int main()
{
    int k;
    for (k = 1, printf("%d:Hi!\n", k); printf("k=%d\n", k), k * k < 26; k += 2, printf("Now k is %d\n", k))
    {
        printf("k is %d in the loop\n",k);
    }
    return 0;
}

这串代码中,第一个分号前面的语句即为initialize(初始化),第二个分号前是test语句,后面的就是update语句了。

在定义中,initialize表达式在执行for语句之前只执行一次,所以刚开始就会输出1:Hi!;接着对test表达式求值,1*1就是1,满足条件(<26),由于test语句包括了printf("k=%d\n", k),故执行循环之前打印k=1,然后执行循环体,打印k is 1 in the loop;接着就到update语句,k+=2的结果就是3(1+2),并且检查test表达式,打印Now k is 3;到此,第一次循环就结束了,进入第二次循环,同样的道理,但是要注意,initialize表达式不会执行,所以直接执行test表达式,打印k=3,3*3是9(<26),执行循环体,打印k is 3 in the loop;接着upgrade语句,k+=2的结果是5(3+2),并打印Now k is 5;第二次循环结束,进入第三次循环,也是首先test语句,打印k=5,5*5是25(<26),还是满足条件,执行循环体,打印k is 5 in the loop;接着upgrade语句,k+=2的结果是7(5+2),打印Now k is 7;现在第三次循环结束了,进入第四次循环, ...那第四次能不能完成呢?让我们一起往下看,首先还是test表达式,打印k=7,7*7是49,注意,不满足条件了,对的,那么的话,循环体就不再执行,后面的upgrade语句也不在执行,到此,这个循环就算结束咯!这个程序的结果看下面:

今天的分享就到这,希望对大家有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值