C语言 while循环与do while循环的基本用法🔥(不看后悔系列)

152 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天 点击查看活动详情


我的掘金个人主页:☘️光之梦☘️
求👍点赞 、求⭐收藏 、求📝评论,如有错误请留言指正,我会第一时间改正。非常感谢🙏!
💌特别标注💌:本博主将会长期更新c语言的语法知识,初学c语言的友友们,可以关注一下博主,学习不迷路哦



一、while循环与do while循环的基本用法

光说不练是肯定学不会的接下来让我们在实战中来学习与掌握 while 循环与do while 循环

(一定要动动你们的小手一起敲哦,就算是看懂了也要自己实践一下哦。编程就是在实践中学习,用的多了自然也就会了。)

1.1 项目一、火箭发射倒计时

cd3021fd976e4539869ffea1f14addc1.gif

要求设计一个火箭发射倒计时的程序

问题;

  1. 这个循环需要执行多少次?
  2. 循环结束后,count最后的值是多少?
  3. 循环停下来的时候,有没有输出最后的0?

代码示例:

#include <stdio.h>int main()
{
    int n;
    printf("尊敬的指挥官!\n请您输入火箭发射倒计时的时间:");
    scanf("%d",&n);
    
    if(n>0)
    {
        printf("输入完毕!\n您的火箭将会于%d秒后发射升空!\n",n);
        
        while ( n>0 )
        {
        printf("%d\n", n);
        n--;
        }
        
        printf("发射!\n");
    }else
    {
        printf("输入错误!\n");
    }
    
    return 0;
}

运行结果:

3b004f4a40244cc9b5198bfe56e44303.png

答:

  • 这个while循环一共执行了10次
  • 循环结束后,n最后的值是0
  • n=0时不满足while循环的条件(n>0),所以并未输出0.

f93b0f1e3a3d48f38c26103c7d6d95de.jpeg你答对了吗?

1.2 项目二、猜数

e871652c7df24ed5ae0aaa810e65cfe7.png

需求

让计算机来想一个数,然后让用户来猜,用户每输入一个数,就告诉用户是大了还是小了,直到用户猜到为止,最后还要告诉用户他猜了几次

思路

因为需要不断重复让用户猜,所以需要用到循环

核心重点是循环的条件

需要考虑循环终止的条件

1.3 项目二需要用到的知识点

1、rand()函数

rand()函数用来产生随机数** ,但是,rand()的内部实现是用线性同余法实现的,是伪随机数由于周期较长,因此在一定范围内可以看成是随机的。**

rand()会返回一个范围在0到32767之间的伪随机数(整数)。

在调用rand()函数之前,要使用srand()函数设置随机数种子** ,如果没有设置随机数种子,rand()函数在调用时,自动设计一个随机数种子。由于随机种子只有一个,所以每次产生的随机数也会相同。**

2、srand()函数

srand()用来设置rand()产生随机数时的随机数种子

使用rand()和srand()产生1-100以内的随机整数:

srand(time(0));

int number1 = rand() % 100;

3、整数的分解

对一个整数做%10的操作,就得到它的个位数

对一个整数做%100的操作,就得到它的十位数

对一个整数做/10的操作,就去掉了它的个位数

对一个整数做/100的操作,就去掉了它的十位数与个位数

代码示例

#include <stdio.h>
#include <stdlib.h>
#include <time.h>int main(){
    //调用srand()函数。
    //不加srand(time(0));的话,每次循环的数都一样
    srand(time(0));
    
    //让生成的随机数在1~100之内 
    int number = rand()%100;
    
    // 定义一个count变量用来记录用户输入的次数,定义变量a用来保存用户输入的数
    int count = 0; 
    int a = 0;
    
    printf("我已经想好了一个1到100之间的数。\n");
    
    do {
        printf("请你猜猜这个1到100之间数:");
        scanf("%d", &a);
        
        if( a > number )
        {
            printf("你猜的数大了。");
        }
        else if( a < number )
        {
            printf("你猜的数小了。");
        }
        
        count ++;
    } while (a != number);
    
    printf("太好了,你用了%d次就猜到了答案。\n", count);
    
    return 0;
}

运行结果:

3c55bdef6fa84a518f4073cfa5bd2a6a.png

注:

  • while循环执行前需要判断是否满足条件,所以可能一次循环一次也没有执行
  • 条件成立是循环继续的条件
  • 如果要用到循环,则一定要想好要让循环不满足的条件,就是要给它一个出口,否则程序将会一直循环下去。

img


各位学习C语言的初学者,如果有问题随时都可以来问我,我会随时为您解答!欢迎大家与我一起学习,互相进步。

 创作不易。求👍求⭐求📝 (一键三连) 是对博主最大的鼓励与支持哦。