do-while循环与while循环类似,除了条件始终在循环主体之后执行。 也称为出口控制循环。
正如我们在while循环中看到的那样,当且仅当条件为true时,才执行主体。
在某些情况下,即使条件为假,我们也必须至少执行一次循环主体。 这种类型的操作可以通过使用do-while循环来实现。
do-while循环与while循环类似,除了条件始终在循环主体之后执行。 也称为出口控制循环。
正如我们在while循环中看到的那样,当且仅当条件为true时,才执行主体。 在某些情况下,即使条件为假,我们也必须至少执行一次循环主体。
这种类型的操作可以通过使用do-while循环来实现。
do while循环的基本格式如下:
do {
statements
} while (expression);
在do-while循环中,循环主体始终至少执行一次。 执行主体后,将检查条件。 如果条件为真,则它将再次执行循环的主体,否则控制权将移出循环。
与while循环类似,一旦控件退出循环,将立即执行循环之后的语句。
如果利用do-while语句计算一到一百的和,算法为:
例1.计算1到100的和
main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100); printf("%d\n",sum); }
while和do-while循环之间的关键区别在于,在while循环中,while是在开始时写入的。
在do-while循环中,while条件写在最后,并以分号(;)终止
下面的程序说明了do-while循环的工作方式. 我们将使用do while循环打印偶数数字。
例2:打印出20以内的偶数
#include<stdio.h> #include<conio.h> int main() { int num=1; //initializing the variable do //do-while loop { printf("%d\n",2*num); num++; //incrementing operation }while(num<=10); return 0; }
在上面的示例中,我们使用do-while循环语句打印出了偶数表。 让我们看看该程序是如何运行的。
以上程序是如何工作的?
- 首先,初始化变量’num’为1。然后,我们编写了一个do-while循环;
- 在每一个循环中,我们有一个打印功能,打印出num的值乘以2;
- 每次增加后,num的值将增加1,并将该数乘于2打印在屏幕上;
- 当num的值变为10以后,该循环将终止,并在循环之后立即执行一条语句。
例3.
// Program to add numbers until the user enters zero #include <stdio.h> int main() { double number, sum = 0; // the body of the loop is executed at least once do { printf("Enter a number: "); scanf("%lf", &number); sum += number; } while(number != 0.0); printf("Sum = %.2lf",sum); return 0; }
在这里,我们使用了一个 do…while 循环来提示用户输入一个数字。只要输入数字不为 0,循环就会起作用。
do…while 循环至少执行一次,即第一次迭代运行时不检查条件。仅在执行第一次迭代后检查条件。
结果
Enter a number: 1.5
Enter a number: 2.4
Enter a number: -3.4
Enter a number: 4.2
Enter a number: 0
Sum = 4.70
do {
printf("Enter a number: ");
scanf("%lf", &number);
sum += number;
}
while(number != 0.0);
因此,如果第一个输入是一个非零数字,则将该数字添加到 sum 变量中,并且循环继续到下一次迭代。重复此过程,直到用户输入 0。
但如果第一个输入为 0,则循环不会进行第二次迭代,并且 sum 变为 0.0。
在循环之外,我们打印 sum 的值。