例:whi(!x)中的!x与下面条件A等 价 A)x==0B)x!=1C)x!=0 X==0 x!=1x!=0 x:01 X:非00 0 不定1
11 例: while( !x ) 中的 !x与下面条件_______等 价 A) x= =0 B) x!=1 C) x!=0 !x x==0 A x!=1 x!=0 x:0 x:非0 0 0 不定 1 1 1 1 0
3)当 while表达式值为1时,为无限循环,除非程序 中另有 break语句或goto等语句来控制或人工干预 停机,否则程序将无限的运行下去,如 while(l) printf(“hell!in”); 4) while语句的循环可以是空语句,例如: ant int x=-100 while(x++<=0); printf(“x=%dn”,x) 运行结果:X=2
12 3)当while表达式值为1时,为无限循环,除非程序 中另有break语句或goto等语句来控制或人工干预 停机,否则程序将无限的运行下去,如: while(1) printf(“hello!\n”); 4)while语句的循环可以是空语句,例如: main() { int x= -100; while(x++<=0); printf(“x=%d\n”,x); } 运行结果:x=2
6.2 do while语旬 流程图 语句格式: 循环体 do 与 while语句相 语句; 比,它至少要 whil(条件表达式);体 执行一次循环 表达式非0 比较whle语句 0 while(条件表达式) 表达式 语句; 非0 循环体
13 6.2 do while语句 语句格式: do 语句; while (条件表达式); 流程图 循环体 表达式 非0 0 与while语句相 比,它至少要 执行一次循环 体 表达式 循环体 非0 0 while (条件表达式) 语句; 比较while语句
例 while和 do while循环的比较 maint Rint sum=0, main( scant(“%d,&i); Rint sum=0, i; while(i<=10) scant(“%d“,&i) sum=sum+i; 分{sum=sum+i 请比较 i++ i++; 3 while(i<=10); printf(%d“,sum);"八, printf("%d“,um; 运行结果:whie语句 do语句 input: input: I output: 55 output: 55 nput: 11 input: 11 output: O output: 11
14 main( ) {int sum=0,i; scanf(“%d“,&i); while (i<=10) {sum=sum+i; i++; } printf(“%d“,sum); } main( ) {int sum=0,i; scanf(“%d“,&i); do {sum=sum+i; i++; } while (i<=10); printf(“%d“,sum); } 请比较 运行结果:while 语句 input: 1 output: 55 input: 11 output: 0 do 语句 input: 1 output: 55 input: 11 output: 11 例 while 和 do while循环的比较
对于 do while语句应注意以下几点: 1)在 while语句中,表达式后面不能加分号,而 在 do while语句的表达式后面则必须加分号。 while(..) do ●● 3 while(.)i 2)在do和 while之间的循环体由多个语句组成时,必 须用{}括起来组成一个复合语句。 3)do~whil和whil语句可以互相替换,但要注意修 改循环控制条件
15 对于do~while语句应注意以下几点: 1)在while语句中,表达式后面不能加分号,而 在do~while语句的表达式后面则必须加分号。 while(…) { … } do { … } while(…) ; 2)在do 和while之间的循环体由多个语句组成时,必 须用{ }括起来组成一个复合语句。 3)do~while和while语句可以互相替换,但要注意修 改循环控制条件