【从零开始的 C 语言笔记】第十八篇-For Loop

不怎麽重要的前言

上一篇介绍了if条件式的语法,让我们可以依照设定好的条件来执行不同内容。

这次我们来介绍程序设计中另一个很重要的语法--「For Loop」!


Loop是什麽?

「Loop」一词在中文翻译中一般称为「回圈」,而使用到它的时机在於,当我们需要重复的利用相同方法处理资料时,我们会使用回圈来代劳,而不是复制许多相同的程序码於程序中,虽然执行结果也许是相同的,但回圈能使我们省去重复撰写的麻烦,而是让程序能在符合条件时自动执行。

其中「For Loop」就是我们第一个要学习的回圈模式,通常我们需要明确次数的重复处理时会使用到它。

假设今天我们需要将使用者的输入,进行十次处理後输出答案(这里只是单纯把data+1),可以参考以下的程序码:

#include <stdio.h>

int main(void)
{
    int data;

    printf("input your data: ");
    scanf("%d", &data);
    printf("---\n");
    for (int i = 0; i < 10; i++){
        data = data+1;
        printf("This is %d times for loop.\n", i+1);
    }
    printf("---\n");
    printf("result: %d\n", data);

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211101/20142565jDy9n64bGA.png


正式使用For Loop

  1. 规则

(1) for回圈的基本结构:「( )」包住的内容为条件,被「{ }」包住的内容为需重复执行的body。

for(int i = 0; i < 10; i++){
    data = data+1;
}

https://ithelp.ithome.com.tw/upload/images/20211101/20142565Zg2VC4YSfY.png

(2) for回圈的条件有三个区块
a. 条件中的三个区块作用分别如以下

for(int i = 0; i < 10; i++){
    data = data+1;
}

https://ithelp.ithome.com.tw/upload/images/20211101/201425655kZH2jRf8Z.png

b. 依照逻辑可以把for回圈的条件拆开成这样,执行结果也会是一样的。
https://ithelp.ithome.com.tw/upload/images/20211101/20142565FAPvGSWdGM.png

#include <stdio.h>

int main(void)
{
    int data;

    printf("input your data: ");
    scanf("%d", &data);
    printf("---\n");
    int i = 0;
    for (; i < 10;){
        data = data+1;
        printf("This is %d times.\n", i+1);
        i++;
    }
    printf("---\n");
    printf("result: %d\n", data);

    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211101/20142565KSFKu34Njx.png

(3) 通常使用for回圈时,是在我们能明确知道回圈需重复多少次时。

  1. 应用
    我们可以结合第九篇提到scanf来设定回圈次数,然後用上一篇学的if来判断使用者输入的data。
#include <stdio.h>

int main(void)
{
    int data,times;

    printf("plz input times: ");
    scanf("%d", &times);
    printf("---\n");
    for(int i = 0; i < times; i++){
        printf("plz input your data: ");
        scanf("%d", &data);

        if(data%2 == 0){
            printf("this num is even.\n\n");
        }
        else{
            printf("this num is odd.\n\n");
        }
    }
    
    return 0;
}

https://ithelp.ithome.com.tw/upload/images/20211101/20142565KTgTGVWOKJ.png


看到这里差不多介绍完for回圈的概念了,结合上次if条件式的概念,不晓得这样的介绍方式大家能不能好好理解,可以多多尝试之前学过的东西结合,这样比较好知道怎麽使用!

下一篇我们来介绍另一个loop--「While Loop」!


<<:  软件职涯谈:拥有「分散式架构」能带来甚麽长期价值?

>>:  Golang 进阶用法

Day 06: Python基础必备小知识(上)

那麽在前篇,我们已经安装建置好整个Python运行环境,接下来就可以学习如何编写简单的程序了! 以下...

Day 29 整合宝石:【Lab】建构三层式云端架构 (EC2+VPC+S3+RDS+IAM) (上)

(转眼间到最後两天,发现想谈及的主题谈不完,所以最後这两篇整合宝石的文章会特别长~,因为如果照之前...

Day 28 整体Privacy by Design需求规划评估实作

根据轻量型个资处理作法整理产出的产品系统架构,RD需遵循的Privacy by Design规划评估...

Day29【Web】网页的会员卡:Session

session 的中文意思为「会话」, 在网路技术长期的演变与发展下, session 基本上具有以...