do...while
格式:
do
{
...
} while (表达式)
功能:主要用于人机交互
while 和 for 可以相互转换,而且它两当表达式为假时,不执行循环体。do...while则不同,至少执行循环体一次。dp...while并不等假于for,当然也不等价于while。
举例:一元二次方程
1 /* 2 2015年4月2日 10:09:39 3 目的:用 do...while 实现一元二次方程 4 5 6 */ 7 8 # include <stdio.h> 9 # include <math.h> 10 11 int main(void) 12 { 13 double a, b, c; 14 double delta; 15 double x1, x2; 16 char ch; 17 18 do 19 { 20 21 printf("请输入一元二次方程的三个系数:\n"); 22 printf("a = "); 23 scanf("%lf", &a); 24 25 printf("b = "); 26 scanf("%lf", &b); 27 28 printf("c = "); 29 scanf("%lf", &c); 30 31 delta = b*b - 4*a*c; 32 33 if (delta > 0) 34 { 35 x1 = (-b + sqrt(delta))/(2*a); 36 x2 = (-b - sqrt(delta))/(2*a); 37 printf("有两个解,x1 = %f, x2 = %lf\n", x1, x2); 38 } 39 else if (delta == 0) 40 { 41 x1 = x2 = (-b) / (2*a); 42 printf("有唯一解,x1 = x2 = %lf\n", x1, x2); 43 } 44 else 45 printf("无实数解!\n"); 46 47 printf("您想继续么(Y/N):"); 48 scanf(" %c", &ch); //%c前面必须加一个空格,原因略 49 50 } while (‘y‘==ch || ‘Y‘==ch); 51 52 53 54 return 0; 55 56 } 57 /* 58 在VC6.0中运行结果是: 59 ----------------------------- 60 请输入一元二次方程的三个系数: 61 a = 1 62 b = 2 63 c = 3 64 无实数解! 65 您想继续么(Y/N):y 66 请输入一元二次方程的三个系数: 67 a = 1 68 b = 5 69 c = 6 70 有两个解,x1 = -2.000000, x2 = -3.000000 71 您想继续么(Y/N):Y 72 请输入一元二次方程的三个系数: 73 a = 1 74 b = 1 75 c = 4 76 无实数解! 77 您想继续么(Y/N):y 78 请输入一元二次方程的三个系数: 79 a = 1 80 b = 4 81 c = 4 82 有唯一解,x1 = x2 = -2.000000 83 您想继续么(Y/N):n 84 ----------------------------- 85 总结: 86 87 */
时间: 2025-01-31 00:42:42