《C++新经典》第5章 循环控制
5.1 循环控制语句
5.1.2 goto语句
无条件转向语句,用来跳转到某个程序位置进行执行,不能跨函数使用。
goto 语句标识;
int i=1, sum=0;
loop:
if(i<=100) {
sum += i;
i++;
goto loop;
}
printf("sum=%d\n", sum);
5.1.3 while语句
while(表达式) {
执行的语句;
}
int i=1, sum=0;
while(i<=100) {
sum += i;
i++;
}
printf("sum=%d\n", sum);
do…while语句
do {
执行的语句; //至少执行一次
} while(表达式);
int i=1, sum=0;
do {
sum += i;
i++;
} while(i<=100);
printf("sum=%d\n", sum);
5.2 for语句
for(表达式1; 表达式2; 表达式3) {
内嵌语句;
}
for(循环变量赋初值; 循环变量结束条件; 循环变量增加值) {
内嵌语句;
}
- 表达式1只执行一次
- 表达式2为真,则执行内嵌语句
- 内嵌语句执行完后,执行表达式3
- 表达式1,2,3都可以省略,分号不能省略
int i, sum;
for(sum=0, i=1; i<=100; i++)
sum += i;
printf("sum=%d\n", sum);
5.3 循环嵌套比较与break、continue语句
5.3.1 循环的嵌套
int i,j,k;
int iCount=0;
for(i=1; i<=9; i++) {
for(j=1; j<=i; j++) {
k=i*j;
printf("%d * %d = %d\t", i, j, k);
iCount++;
}
printf("\n");
}
printf("iCount=%d\n", iCount);
5.3.2 循环语句的比较
while循环和for循环是先判断为真后才执行,do…while循环是先执行后才判断真假(至少执行一次)。
while、do…while、for循环,可以用break跳出循环,continue开始下一次循环(结束本次循环)。
goto和if配合使用构成的循环,不能用break和continue控制。
5.3.3 break语句和continue语句
break只能用于while,do…while,for和switch语句,跳出内层。
do只能用于while,do…while,for和switch语句,跳过本次循环体中({}中内容)余下的尚未执行的语句。