C 知识量:16 - 74 - 317
通常,程序进入循环体后,在下一次循环测试前会执行完循环体中的所有语句。而在C语言中存在一种语句,可以根据循环体中的测试结果来忽略一部分循环内容,甚至结束循环。这种语句分别是continue语句和break语句。
while循环、for循环和do while循环都可以使用continue语句。当执行continue语句时,会跳过本次迭代的剩余部分,并开始下一轮迭代。如果continue语句在嵌套循环的内层循环中,则只会影响包含该语句的内层循环。以下是一个示例:
#include <stdio.h> int main(void) { int x, y; for (x = 1; x <= 9; x++) { for (y = 1; y <= x; y++) { if (y == 1)continue; printf("%d*%d=%-2d ", y, x, x * y); } printf("\n"); } system("pause"); return 0; }
运行结果为:
2*2=4 2*3=6 3*3=9 2*4=8 3*4=12 4*4=16 2*5=10 3*5=15 4*5=20 5*5=25 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
以上是一个乘法口诀打印程序,但是通过continue语句,排除了乘数是1的情况。
程序执行到循环中的break语句时,会终止包含它的循环,并继续执行下一阶段。嵌套循环内层的break只会让程序跳出包含它的当前循环,要跳出外层循环还需要一个break。以下还是一个乘法口诀打印程序,但只打印第1个乘数小于5的部分。
#include <stdio.h> int main(void) { int x, y; for (x = 1; x <= 9; x++) { for (y = 1; y <= x; y++) { if (y == 5)break; printf("%d*%d=%-2d ", y, x, x * y); } printf("\n"); } system("pause"); return 0; }
运行结果为:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 1*6=6 2*6=12 3*6=18 4*6=24 1*7=7 2*7=14 3*7=21 4*7=28 1*8=8 2*8=16 3*8=24 4*8=32 1*9=9 2*9=18 3*9=27 4*9=36
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6