C语言while与do-while循环的比较

凡是能用while循环处理,都能用do-while循环处理。

在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但是如果while后面的判断表达式一开始就为假(0)时,两种循环的结果是不同的。

#include<stdio.h>

int main()
{
    
    
	int sum = 0, i;
	scanf("%d",&i);
	while (i<=10)
	{
    
    
		sum = sum + i;
		i++;
	}
	printf("sum=%d\n",sum);
	return 0;
}

在这里插入图片描述
在这里插入图片描述

#include <stdio.h>

int main()
{
    
    
	int sum = 0, i;
	scanf("%d",&i);
	do
		{
    
    
		sum = sum + i;
		i++;
		}while (i<=10);
	printf("sum=%d\n",sum);
	return 0;
}

在这里插入图片描述

在这里插入图片描述
通过对比可以发现,当输入 i 的值小于或等于10时,两者得到的结果相同。而当 i >10 时,二者结果就不相同了。这是因为此时对while循环来说,一次也不执行循环体,因为表达式为假,而对do-while循环来说它先要执行一次循环体。从这可以得出结论:当while后面的表达式的第一次值为“1”时,两种循环得到的结果相同;否则,二者结果不相同。

猜你喜欢

转载自blog.csdn.net/qq_32100603/article/details/109523202