【从零开始的 C 语言笔记】第十九篇-While Loop(1)

不怎么重要的前言

上一篇介绍了for loop的概念,让大家面对在有重複性、明确次数的处理时,可以使用这个语法来解决问题。

这次我们来介绍迴圈中另一个很重要的语法--「While Loop」!


While Loop?

其实while迴圈与for迴圈的概念是很像的,都是为了处理重複性内容而生,但两者最大的差别在于当没有明确的次数处理时,会变得很不适合使用for迴圈(也不是不能用,就是不适合),取而代之的便是while迴圈了。

我们来看下列的例子:

#include <stdio.h>int main(void){    int data;    printf("plz input your data(>0): ");    scanf("%d", &data);    while(data > 0){        if(data%2 == 0){            printf("this data is even.\n");        }        else{            printf("this data is odd.\n");        }        printf("plz input your data(>0): ");        scanf("%d", &data);    }    printf("---\n");    printf("thanks for your using\n");    return 0;}

http://img2.58codes.com/2024/20142565ghqStvHK9C.png

我们让使用者输入数字来判断奇偶数,直到输入的数字小于0时终止程式,由于不晓得使用者会输入多少数字,所以这时候使用for loop相对的不适合,且这样的方式比较具有弹性。


正式使用

规则
while迴圈是一个进入前、跑过一圈后判断条件,只要符合条件就会持续执行的迴圈。

(1) while迴圈的基本结构:「( )」包住的内容为条件判断,被「{ }」包住的内容为需重複执行的body。

while(data > 0){    if(data%2 == 0){        printf("this data is even.\n");    }    else{        printf("this data is odd.\n");    }    printf("plz input your data(>0): ");    scanf("%d", &data);}

http://img2.58codes.com/2024/20142565cBcUfp3xkh.png

(2) 谨慎设条件,避免无限迴圈(程式出不去迴圈一直执行,会导致电脑当机或程式坏掉)。

(3) 读取到使用者输入才会执行的语法。
a. while(scanf("%d", &data) != EOF)

#include <stdio.h>int main(void){    int data;    while(scanf("%d", &data) != EOF){        if(data%2 == 0){            printf("this data is even.\n");        }        else{            printf("this data is odd.\n");        }    }    return 0;}

http://img2.58codes.com/2024/20142565CNhJGMxb2q.png

b. while(~scanf("%d", &data))

#include <stdio.h>int main(void){    int data;    while(~scanf("%d", &data)){        if(data%2 == 0){            printf("this data is even.\n");        }        else{            printf("this data is odd.\n");        }    }    return 0;}

http://img2.58codes.com/2024/201425654tniFfePtK.png

c. while(scanf("%d", &data) != -1)

#include <stdio.h>int main(void){    int data;    while(scanf("%d", &data) != -1){        if(data%2 == 0){            printf("this data is even.\n");        }        else{            printf("this data is odd.\n");        }    }    return 0;}

http://img2.58codes.com/2024/20142565BW1owLx92V.png

(EOF的详细意义的可以参考这里)

应用
while迴圈结合EOF的概念,搭配if条件判断、次数计算。
#include <stdio.h>int main(void){    int data, i=0;    while(scanf("%d", &data) != EOF){        i++;        if(data%2 == 0){            printf("Case %d: EVEN.\n", i);        }        else{            printf("Case %d: ODD.\n", i);        }    }    return 0;}

http://img2.58codes.com/2024/20142565XVnOXxsWEj.png


我们已经介绍完两个最常使用到的迴圈了,大家可以多多尝试看看提到的语法,有助加深学习印象。

下一篇我们来提while迴圈的延伸--「Do-While」!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章