看完这篇文章,保你学会C语言while循环与 do while 循环

cc8b9af695d241f1abcc6a424efd5529.jpeg

我的个人主页:☆光之梦☆的博客_CSDN博客-C语言基础语法(超详细)领域博主

欢迎各位 👍点赞 ⭐收藏 📝评论

我的专栏C语言基础语法(超详细)_☆光之梦☆的博客-CSDN博客(这个专栏里的平均文章质量分是95噢,基本全都是高质量文章,本博主将会长期更新c语言的语法知识,初学c语言的朋友们,可以收藏订阅一下,收藏绝对不亏噢) 

目录

一、while循环

1.1 while 循环的基本结构

1.2 while与 if 的区别

1.3 程序验证

二、do while 循环

2.1 do while 循环的基本格式

2.2 do while 循环与 while循环的区别

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

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

3.2 项目二、猜数

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

1、rand()函数

2、srand()函数

3、整数的分解


一、while循环

1.1 while 循环的基本结构

while(判断是否循环的条件)

{

                循环体语句……

}

 while 的意思是:当……时。

1.2 while与 if 的区别

while循环你可以这么理解:把while 循环看成 if 语句,但是和 if 语句有一个区别

它们的相同点是:先判断()内的条件是否成立,如果条件成立那就执行 while循环 或 if 内的语句,如果条件不成立那就跳过 while循环 或者 if 语句

它们的不同点我们都知道如果条件成立,程序只会执行一次 if 内的语句,然而如果条件成立程序则会反复执行 while 内的语句直到条件不满足时,才跳出while循环

为了方便大家更好地区分和理解 if 语句与while循环。下面分别是 if 语句与 while循环 的流程图:

a1456e7ffb074bdeb7bd73cac136f757.png

也就是说:如果条件成立,执行完一次 if 内的语句程序就会跳出 if 语句,去执行下面的程序。( if 执行完一次就没了)

如果条件成立,执行完一次while内的语句还要再次重新判断条件是否还是成立,如果条件还是成立,那就再执行一次while内的循环,如此反复,直到条件不成立为止,才能跳出循环。 去执行下面的程序。

1.3 程序验证

  • 测试程序是否有效时经常使用边界数据
  • 通常用:正数,0,负数 来测试。还有有效范围两端的数据、特殊的倍数等。
  • 还可以在程序适当的地方插入printf()来输出变量的内容

 

二、do while 循环

2.1 do while 循环的基本格式

do{

        循环体语句……

}while(判断是否循环的条件)

do 的意思是:

 do while 循环程序先执行一轮 do while 循环体内的语句,然后再来判断循环的条件是否满足,如果满足则继续循环,不满足则循环结束

2.2 do while 循环与 while循环的区别

do while循环 和 while循环很像,区别是do while循环是执行一遍,然后再来判断条件

也就是说,无论如何,do while 循环都会执行一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环

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

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

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

3.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你答对了吗?

3.2 项目二、猜数

e871652c7df24ed5ae0aaa810e65cfe7.png

需求

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

思路

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

核心重点是循环的条件

需要考虑循环终止的条件

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

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

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

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

☆光之梦☆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值