C语言 —— do while循环语句用法与例题

本文介绍了C语言中do-while循环表达式,它先执行一次语句,再检查条件是否为真,为真则继续循环。文中给出三个例题,分别是用do-while输出1到10的值、计算1加到100的值、计算100到999之间的水仙花数,并对代码进行了解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在c语言中出了经常使用的while循环,还有一种 do while 循环,下面会有do while循环的使用情况。

do while循环表达式:

do
	{
    语句块
	}
	
while(表达式);


注意!!! 
while();,的 英文分号 ;。
必须要加!!!

do...while 循环 是 while 循环的变体。在检查 while( ) 条件是否为真之前,该循环首先会执行一次 do { } 之内的语句,然后在 while ( ) 内检查条件是否为真,如果条件为真的话,就会重复do while这个循环直到 while( ) 语句为假,退出循环,输出结果。

例题1:用do-while输出1到10的值:

代码:

#include <stdio.h>
int main (void)
{ 
	int i = 1;	// 设置初始值,i为1。
	do			
	{
		printf("数值为:%d\n",i);
		i++;
	}
	while(i<=10);   //先执行语句,在判断结果。
	return 0;
}

解释:
首先是设置初始值为1。
1、输出数值为1,然后i++结算 结果 i 为2;
2、接着运行至while语句这里,进行判断,条件为真时,继续循环,输出 i = 2;再计算 i ++;
3、直到 i = 11 时,条件为假,跳出循环输出结果。

结果:
在这里插入图片描述

例题2:用do-while计算1加到100的值:

代码:

#include <stdio.h>
int main (void)
{
	int i;
	int sum;    //定义i 和 sum;
	i=1;
	sum=0;		//给 i 和 sum 一个初始值。
	do
	{
		//sum += i;
		sum = sum+i;   // 求和
		i++;
	}
	while(i<=100);     //判断条件 
	printf("1加到100的值为:%d\n",sum);
	return 0;
}

解释:
首先是设置初始值为i = 1;sum = 0 。
1、输出数值为1,sum等于0+1等于 1;然后i++结算 结果 i 为2;
2、接着运行至while语句这里,进行判断,条件为真时,继续循环;
3、当 i = 2;sum等于 之前计算的sum值 加 新的 i 的值,再计算 i ++;
4、直到 i = 100 时,条件为假,跳出循环输出结果。

结果:
在这里插入图片描述

例题3:用do-while计算水仙花(100到999之间各个位数的立方和等于本身数成为水仙花数):

代码:

#include <stdio.h>
int main (void)
{
	int i = 100;
	int a,b,c;
	do
	{	// 拆解百位十位各位
		a = i/100;		//百位
		b = i/10%10;	//十位
		c = i%10;		//各位
		if(a*a*a+b*b*b+c*c*c == i)
		{
			printf("水仙花数:%d\n",i);
		}
		i++;
	}
	while (i<=999);
	return 0;
}

解释:
首先是设置初始值为i = 100;
1、开始执行 i = 100;条件成立,执行语句块内容,拆解i的个位十位百位数,在用 if语句 判断是否成立,成立就输出 i;
2、判断 i 的值,拆分个位十位百位;a = i/100; //百位; b = i/10%10; //十位;c = i%10; //个位
3、重复上面的操作,直到 i>999 时,条件不成立,直接跳出do while循环,输出结果。

结果
在这里插入图片描述

### C语言中的 `do...while` 用法 `do...while` 是一种循环结构,其特点是在每次进入循环前都会先执行一次循环体,然后再根据条件决定是否再次执行。这种特性使得即使条件一开始就不成立,循环体也会被执行至少一次。 #### 基本语法 以下是 `do...while` 的基本语法: ```c do { // 循环体代码 } while (条件); ``` - **循环体**:这是需要重复执行的代码块。 - **条件**:这是一个布尔表达式,用来判断是否继续执行循环体。如果为真 (`true`),则继续执行;如果为假 (`false`),则退出循环。 需要注意的是,在 `do...while` 结构中,条件判断位于循环体之后,因此无论条件如何,循环体会被无条件地执行一次[^1]。 #### 示例代码 下面是一个简单的例子,展示如何使用 `do...while` 来让用户不断输入数字,直到输入负数为止: ```c #include <stdio.h> int main() { int num; do { printf("请输入一个整数(输入负数结束): "); scanf("%d", &num); if (num >= 0) { printf("您输入的数字是:%d\n", num); } } while (num >= 0); printf("程序已结束。\n"); return 0; } ``` 在这个示例中,用户会被要求持续输入正数或零,只有当他们输入了一个负数时,循环才会停止。由于采用了 `do...while` 结构,所以即便第一次输入就是负数,系统仍然会先进入循环体完成一次处理逻辑[^4]。 #### Java 中的 `do...while` 在其他编程语言如 Java 中,`do...while` 的工作原理相同。这里提供一段类似的 Java 版本代码作为补充说明: ```java import java.util.Scanner; public class DoWhileExample { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int input; do { System.out.print("Enter a positive integer or negative to exit:"); input = scanner.nextInt(); if(input >= 0){ System.out.println("You entered:" + input); } } while (input >= 0); System.out.println("Exiting..."); scanner.close(); } } ``` 此段代码展示了同样的概念——即先执行后测试的特点[^2]。 #### 关键点解释 1. **最少执行次数**:因为条件检查发生在循环体之后,所以无论如何,循环体内的代码都将被执行至少一次。 2. **结尾分号不可省略**:某些其他类型的循环不同,`do...while` 需要在最后加上分号来标记整个语句的结束[^3]。 ### 总结 无论是哪种编程语言,只要涉及到需要确保某段代码至少运行一次的情况,都可以考虑使用 `do...while` 循环。这不仅限于简单的人机交互应用,也可以扩展至更复杂的业务流程控制之中。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值