while语句是先判断条件为“真”时才循环,do...while语句是先进入循环再判断条件为“假”来决定是否终止循环。
int
i, sum=0;int
i, sum=0; scanf("%d", &i); scanf("%d", &i);while
(i <= 10) {do
{ sum = sum + i ; sum = sum + i ; i++; i++; } }while
(i <= 10) ;
当输入小于等于10的数时,两个结果完全一样,当输入大于10的数时,左边结果为0,右边结果为输入的数。说明左边未进入循环,而右边循环了一次。
当运行到break语句或continue语句时,其后面的语句都不再运行。但不同的是:break语句中止了循环,从循环后面的语句开始运行;而continue语句并不中止循环,而是跳到循环的头部开始下一轮循环。
#include
<stdio.h>int
main(void
) {int
i, sum=0;while
(1) { scanf("%d", &i);if
(i > 10 || i < 0) { printf("请输入小于10的正数\n");continue
; }else if
(i == 0) { printf("退出循环\n");break
; } sum = 0;do
{ sum = sum + i ; i--; }while
(i > 0); printf("sum = %d\n", sum); }return
0; }
goto语句的使用危险性很大,一般不建议使用,但在多重循环的情况下,要终止到指定的某一层循环时,用goto的确很省事。使用goto语句要注意以下几点,否则编译并不一定出错,但程序很危险。下面的例子就很危险。
#include
<stdio.h>int
main(void
) {int
x, y; scanf("%d", &x); scanf("%d", &y);if
(x == 0) { printf("aaaaaa\n");goto
LA1; //这是很危险的做法 }if
(y == 100) { LA1: printf("bbbbbb\n"); }return
0; }