首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >C语言循环语句

C语言循环语句

作者头像
木井巳
发布2025-12-16 09:16:30
发布2025-12-16 09:16:30
710
举报

前言

C语言提供了三个循环语句供程序员们使用,它们分别是:while语句,for语句和do...while语句。

1. while语句的执行流程

while语句的格式如下:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    while(1)
    {
        printf("死循环啦\n");
    }
    return 0;
}

  • 上来先判断while旁边小括号的表达式:若为0,那么循环结束,直接退出循环;若不为0,进入循环,执行花括号内的语句。
  • 执行完花括号内的语句后,再回到while处判断小括号内的条件,直到循环结束。

因此,我们看上面的例子,while旁边的小括号的值始终为1,那么这个循环就永远不会结束,即死循环。

可以看到,当运行这段代码,程序将持续不断地打印“死循环啦” ,永不停止。

2. while语句的实践

2-1. 在屏幕上打印 1~10 的值

参考代码:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 1;
    while(i <= 10)
    {
        printf("%d ", i);
        i++;
    }
    return 0;
}

运行结果:

2-2. 逆序打印整数

输入⼀个正的整数,逆序打印这个整数的每⼀位

例如:

输入:1234,输出:4 3 2 1

输入:521,输出:1 2 5

参考代码:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int num = 0;
    scanf("%d", &num);
    while(num)
    {
        printf("%d ", num % 10);
        num /= 10;
    }
    return 0;
}

解析:

要想得到一个整数(多位数)的最后一位数,可以使用“%”操作符——取余操作:

如1234 % 10,得到的就是 4。

当我们想要倒数第二位数,就可以先除以10(将最后一位数除掉),再进行取余操作:

如1234 / 10,得到123;123 % 10 得到 3。

运行结果:

3. for语句的执行流程

for语句的格式如下:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 0;
    for(i = 1; i <= 10; i++)
    {
        printf("%d ", i);
    }
    return 0;
}

for的小括号中有三个表达式,它们的作用分别是:

  1. 循环变量的初始化;
  2. 循环判断条件;
  3. 循环变量的调整

如上述代码中,第一个表达式(i = 1)表示将循环变量再初始化为1;第二个表达式(i <= 10)表示判断循环变量 i 是否满足 i <= 10:若满足,继续循环;若不满足,结束循环。最后一个表达式(i++)是对循环变量 i 的调整,每一次调用花括号中的语句后都会调整一次循环变量。

运行结果:

4. for语句的实践

4-1. 在屏幕上打印 1~10 的值

参考代码:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 0;
    for(i = 1; i <= 10; i++)
    {
        printf("%d ", i);
    }
    return 0;
}

运行结果:

4-2. 计算1~100之间3的倍数的数字之和

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 0;
    int sum = 0;
    for(i = 1; i <= 100; i++)
    {
        if(i % 3 == 0)
            sum += i;
    }
    printf("%d\n", sum);
    return 0;
}

运行结果:

小优化:如果能直接产生3的倍数的数字就省去了多余的循环和判断

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 0;
    int sum = 0;
    for (i = 3; i <= 100; i += 3)
    {
        if (i % 3 == 0)
            sum += i;
    }
    printf("%d\n", sum);
    return 0;
}

5. do...while语句的执行流程

do...while语句的格式如下:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 1;
    do
    {
        printf("%d ", i);
        i++;
    }while(i <= 10);
    return 0;
}

与while语句和for语句不同的是:do...while语句是先执行花括号中的循环语句,再判断循环条件。

运行结果:

6. do...while语句的实践

6-1. 判断整数是几位数

输入一个正整数,判断这个整数是几位数?

例如:

输入:1234 输出:4

输入:12 输出:2

参考代码:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int num = 0;
    scanf("%d", &num);
    
    int count = 0;
    do
    {
        count++;
        num /= 10;
    }while(num);
    printf("%d\n", count);
    return 0;
}

运行结果:

这里并非必须使用 do... while 语句,但是这个代码就比较适合使用 do... while 循环,因为n即使是

0,也是1位数,要统计位数的。

7. break语句和continue语句

在循环执行的过程中,如果某些状况发生的时候,需要提前终止循环,这是非常常见的现象。

C语言中提供了 break 和 continue 两个关键字,就是应用到循环中的:

  • break 的作用是用于永久的终止循环,只要 break 被执行,直接就会跳出循环,继续往后执行。
  • continue 的作用是跳过本次循环中 continue 后边的代码,在 for 循环和 while 循环中有所差异的。

8. 循环嵌套练习

8-1. 找出100~200之间的素数,并打印在屏幕上。

参考代码:

代码语言:javascript
复制
#include <stdio.h>
int main()
{
    int i = 0;
    int j = 0;
    for (i = 100; i <= 200; i++)
    {
        int flag = 1;  //1代表是素数
        for (j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                flag = 0;    //0代表不是素数
                break;
            }
        }
        if (flag == 1)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

解析:

  1. 要从100~200之间找出素数,首先得有100~200之间的数,这里可以使用循环解决。
  2. 假设要判断 i 是否为素数,需要拿 2 ~ i - 1 之间的数字去试除 i,需要产生 2 ~ i - 1 之间的数字,也可以使用循环解决。
  3. 如果 2 ~ i - 1 之间有数字能整除 i ,则 i 不是素数,如果都不能整除,则 i 是素数。

运行结果:

完~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 1. while语句的执行流程
  • 2. while语句的实践
    • 2-1. 在屏幕上打印 1~10 的值
    • 2-2. 逆序打印整数
  • 3. for语句的执行流程
  • 4. for语句的实践
    • 4-1. 在屏幕上打印 1~10 的值
    • 4-2. 计算1~100之间3的倍数的数字之和
  • 5. do...while语句的执行流程
  • 6. do...while语句的实践
    • 6-1. 判断整数是几位数
  • 7. break语句和continue语句
  • 8. 循环嵌套练习
    • 8-1. 找出100~200之间的素数,并打印在屏幕上。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档