【C语言】循环语句do while

一、循环语句do while的用法

分析代码:

  1. 创建变量i

  1. do内放语句项

  1. while(表达式),表达式为真则进入循环

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

源代码:

#include<stdio.h>
int main()
{
    int i = 1;
    do
    {
        printf("%d ", i);
        i++;
    } while (i <= 10);
    return 0;
}

二、do while语句中的break

break:跳出循环

分析代码:

  1. 这段代码与第一段大约一致

  1. 在do内的第一条语句为if(i==5),即当i=5时跳出循环

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

源代码:

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

三、do while语句中的continue

continue:跳过continue后的语句,重新开始新循环

分析代码:

  1. 这段代码与第一段大约一致

  1. 在do内的第一条语句为if(i==5),然后跳过continue后的语句(打印和++),重新开始循环(i=6)

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

源代码:

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

关于循环语句的小练习(一)

1.运用循环语句计算n的阶乘

思路:

n的阶乘,及从1乘到n

所以应该想到至少创建两个及两个以上的变量,其中一个用于存储scanf函数取得键盘上的数,另一个变量从1开始循环逐渐逼近目标数

分析代码:

  1. 创建变量i,a,以及sum赋值为1

  1. scanf函数将输入的数存入变量i中

  1. for循环,初始化:a=1;判断:a<=i;调整:a++

  1. 语句项为sum=sum*a

  1. 打印sum

例如i=3:进入for循环,a=1,sum=1;a=2,sum=1*2;a=3(i),sum=1*2*3

源代码:

int main()
{
    int i = 0;
    int a = 0;
    int sum = 1;
    scanf("%d", &i);
    for (a = 1; a <= i; a++)
    {
        sum = sum * a;
    }
    printf("%d", sum);
    return 0;
}

2.计算1!+2!+3!+...+10!

思考:

这是在上一个求阶乘的基础上增加了每个阶乘的求和

所以将scanf函数改为for循环即可

分析代码:

  1. 创建变量n,a,以及ret赋值1,sum赋值0

  1. for循环:初始化:n=1;判断n<=10;调整n++。这一步是循环出1-10这10个数字

  1. 在嵌套for循环:初始化:a=1;判断a<=n;调整a++。这一步是求阶乘的过程

  1. sum+=ret为将每个阶乘求和,最后打印sum

注意:在第二个for循环前要将ret初始化

源代码:

int main()
{
    int n = 0;
    int a = 0;
    int ret = 1;
    int sum = 0;
    for (n = 1; n <= 10; n++)
    {
        ret = 1;
        for (a = 1; a <= n; a++)
        {
            ret = ret * a;
        }
        sum += ret;
    }
    printf("%d", sum);
    return 0;
}

以上的代码可能有些繁琐,简易版如下

析代码:

  1. 只需要创建3个变量即可

  1. 第一个for魂环不变,取消第二个for循环,直接用第二个foe循环的语句即可

  1. 但是,ret=ret*n

思路:n=1时,ret为1的阶乘,n=2时,ret为1的阶乘*2,即2的阶乘,以此类推

源代码:

int main()
{
    int n = 0;
    int ret = 1;
    int sum = 0;
    for (n = 1; n <= 10; n++)
    {
        ret *= n;
        sum += ret;
    }
    printf("%d", sum);
    return 0;
}

总结

以上就是本人对于循环语句do while以及循环语句的练习(一)的学习与理解

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

林柏檀

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

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

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

打赏作者

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

抵扣说明:

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

余额充值