目录

一、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循环相同的是,条件满足时执行循环,条件不满足时结束循环。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐