do while循环和while循环的区别

c语言入门 专栏收录该内容
14 篇文章 0 订阅

目录

一、do while 循环 

二、while循环

1.输入0时,结果仍为0

2.输入0时,结果为1

3.用if else解决输入为0,输出也为0的问题

三、总结

如上图,左边是 do while循环,右边是while循环。这两个循环最本质的区别就是while循环先判断是否满足条件,而do while循环则是最后执行完循环体后再来判断是否满足条件。下面我举个例子。

一、do while 循环 

#include <stdio.h>

int main()
{
	int x;
	scanf("%d",&x);
	int n=0;
	do
	{
		x/=10;
		n++;
	}while(x>0);
	printf("%d\n",n);
	
	return 0;
 } 
 

在这个程序中计算机先执行循环体x/=10;n++;然后在判断x是否大于0。

二、while循环

1.输入0时,结果仍为0

#include<stdio.h>

int main()
{
	int x;
	int n=0;
	
	scanf("%d",&x);
	while(x>0){
		n++;
		x/=10;
	}
	printf("%d/n",n);
	
	return 0;
}

在这个程序中,计算机会先判断x是否大于0,然后在执行循环体n++;x/=10.但这里有一个问题,那就是当x=0时,输出的结果为0,下面我没来试着解决这个问题。

2.输入0时,结果为1

#include <stdio.h>

int main()
{
	int x;
	int n=0;
	
	scanf("%d",&x);
	n++;
	x/=10;
	while(x>0){
		n++;
		x/=10;
	}
	printf("%d\n",n);
	
	return 0;
 } 

在这个程序中,计算机先要执行n++;x/=10;然后在执行while循环,这样当x=0时,n=1,计算机不进行while循环,直接输出结果为1。

3.用if else解决输入为0,输出也为0的问题

#include <stdio.h>

int main()
{
	int x;
	int n=0;
	
	scanf("%d",&x);
	if(x>0){
		while(x>0){
			n++;
			x/=10;
		}
	}else{
		n=1;
	}
	printf("%d\n",n);
	
	return 0;
}

在这个程序之中,计算机先判断x是否大于0,如果大于0执行while循环,否则n=1,然后直接输出结果。如果x=0的话,直接执行n=1,然后输出结果1。

三、总结

while语句是一个循环语句,它会首先判断一个条件是否满足,如果条件满足,则执行后面紧跟着的语句或语句括号,然后再次判断条件是否满足,如果条件满足则再次执行,直到条件不满足为止。后面紧跟的语句或语句括号,就是循环体。

do-while循环和while循环很像,唯一的区别是我们在循环体执行结束的时候才来判断条件。也就是说,无论如何,循环都会执行至少一遍,然后再来判断条件。与while循环相同的是,条件满足时执行循环,条件不满足时结束循环。

  • 4
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

太湖鹏哥

我会利用打赏来学习并写出好文章

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值