【C语言】循环语句for

这一节来深入理解一下for循环语句的使用

一、for语句的结构

for(初始化;判断条件;调整)

分析代码:

  1. 创建变量i

  1. for循环语句的初始化为i=1,说明i从1开始循环

  1. 判断部分为i<=10,直到i>10时跳出循环

  1. 调整部分为i++,每循环一次I+1

此代码结果为打印1-10这10个数字

源代码

#include<stdio.h>
int main()
{
    int i = 0;
    //for(初始化;判断;调整)
    for (i = 1; i <= 10; i++)
    {
        printf("%d ", i);
    }
    return 0;
}

二、for语句中的break

与上节循环语句while中break的作用一样,都是跳出循环

分析代码:

  1. 与第一条代码基本一致

  1. 在printf语句前增加if条件语句为当i==5时跳出循环(break)

此代码的结果为:1 2 3 4(5还没来得及打印)

源代码

int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        if (i == 5)
        {
            break;
        }
        printf("%d ", i);
    }
    return 0;
}

三、for语句中的continue

与循环语句while中的continue一样,作用为跳过continue之后的语句,重新开始一个循环

分析代码:

  1. 与第一条代码基本一致

  1. 在printf语句前增加if条件语句为当i==5时,跳过continue之后的语句(即不打印5),重新开始循环(此时i==6)

此代码的结果为:1 2 3 4 6 7 8 9 10(跳过5)

源代码

int main()
{
    int i = 0;
    for (i = 1; i <= 10; i++)
    {
        if (i == 5)
        {
            continue;
        }
        printf("%d ", i);
    }
    return 0;
}

四、for语句中的“左闭右开”形式

所谓的“左闭右开”是指初始化是被赋值的确定的数,判断部分是一个开区间

分析代码:

  1. 创建一个元素为10的数组

  1. 创建变量i

  1. for循环的初始化为i=0

  1. 判断为i<10,为开区间,调整为i++

  1. 打印数组

此代码的结果为:10个0

源代码

int main()
{
    int arr[10] = { 0 };
    int i = 0;
    for (i = 0; i < 10; i++)
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

为什么建议“左闭右开”,而不建议“左闭右闭”?

:如果是“左闭右闭”,判断部分就为i<=9,不好判断循环次数,如果是i<10就知道是循环10次啦

五、一直for循环

来看这一段代码

在for循环的初始化,判断,调整都是空的,只要判断部分是空的,此时的条件就很为真,所以混进入死循环

源代码

int main()
{
    for (;;)
    {
        printf("hehe\n");
    }
    return 0;
}

六、for循环嵌套使用

for循环是可以嵌套使用的,可以在for里在使用一个for

你觉得这个执行结果一共是多少个hehe呢?

答案是9个

分析代码:

当i=0进入第一个for循环,j=0,然后来到了第二个循环,在第二个循环中循环3次

在进入第一个循环中,如此也重复3次,所以3*3=9次循环

源代码

int main()
{
    int i = 0;
    int j = 0;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("hehe\n");
        }
    }
    return 0;
}

但是如果初始化省略掉,打印几个hehe呢?

这是因为当初始化省略掉后,第二个for循环3次后再进入第一个循环,然后再准备第二个循环时,j已经=3,而不是0,所以结束循环

源代码

int main()
{
    int i = 0;
    int j = 0;
    for (; i < 3; i++)
    {
        for (; j < 3; j++)
        {
            printf("hehe\n");
        }
    }
    return 0;
}

七、for循环的变式

for循环还可以被两个变量控制

由变量x,y同时限制for循环的条件,结果为两个hehe

源代码

int main()
{
    int x, y;
    for (x = 0, y = 0; x < 2 && y < 5; ++x, y++)
    {
        printf("hehe\n");
    }
    return 0;
}

八、小练习

这个for循环会循环几次?

答案是0次

因为在判断部分k=0,是将0赋给k,而不是k==0,所以判断部分为假,不会进入循环

源代码

int main()
{
    int i, k;
    for (i = 0, k = 0; k = 0; i++, k++)
    {
        k++;
    }
    return 0;
}

总结

以上就是本人对于循环语句for的学习与理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林柏檀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值