1.while语句
在C语言中,while循环语句用于重复执行一段代码,直到指定的条件不再满足。
#include <stdio.h> int main() { int i = 1; while(i <= 5) { printf("%d\n", i); i++; } return 0; }
while循环首先检查条件i <= 5是否成立,即i是否小于等于5。如果条件成立,就会执行循环体内的代码,即打印当前的i值并将i增加1。在每次循环迭代后,条件会再次被检查。当i的值变为6时,条件不再成立,循环会结束。
程序结果:
1 2 3 4 5
2.do...while 语句
do while语句先执行一次循环体中的代码,然后检查条件是否为真。如果条件为真,则继续执行循环体中的代码,直到条件为假才停止循环。
#include <stdio.h> int main() { int num = 1; // 使用do while语句打印出1到5的数字 do { printf("%d\n", num); num++; } while(num <= 5); return 0; }
这就是与while语句的区别:至少执行一次循环体中的代码。
3.for语句
#include <stdio.h> int main() { // 使用for语句打印出1到5的数字 for(int num = 1; num <= 5; num++) { printf("%d\n", num); } return 0; }
在上面的示例中,for语句由三部分组成:
初始化部分(int num = 1;),
条件部分(num <= 5;),
和更新部分(num++)。
循环体中的代码会在每次迭代中执行,直到条件部分的条件不再满足为止。
for循环在开始时初始化变量,然后在每次迭代中更新变量并检查条件。
4.循环嵌套
#include <stdio.h> int main() { // 外层循环控制行数 for(int i = 1; i <= 5; i++) { // 内层循环控制每行输出的星号数量 for(int j = 1; j <= i; j++) { printf("* "); } printf("\n"); } return 0; }
外层循环控制行数,内层循环控制每行输出的星号数量。
当外层循环变量i增加时,内层循环就会执行i次,输出对应数量的“ * ”号。
这种循环嵌套的结构可以用来实现复杂的循环逻辑,特别是在需要迭代多维数据结构时非常有用。循环嵌套允许在一个循环内部嵌套另一个或多个循环,以实现更复杂的循环控制逻辑。
5.break 和 continue
在C语言中,break和continue是两种控制语句,用于在循环中改变程序的执行流程。它们的特征如下:
break语句:
- 当break语句被执行时,循环会立即终止,退出当前循环结构(for循环、while循环、do-while循环、switch语句)。
- break语句通常用于在循环中达到某个特定条件时提前退出循环,或者用于switch语句中结束case分支的执行。
- 使用break语句时,程序会直接跳出当前循环,继续执行循环之后的代码。break语句只能用于循环和switch语句中。
continue语句:
- 当continue语句被执行时,当前循环中continue语句后面的代码不再执行,而是直接跳到本次循环的下一轮。换句话说,continue语句会跳过当前迭代中continue语句后面的代码。
- 使用continue语句时,程序会继续进行下一轮循环迭代,而不执行continue语句后面的代码。continue语句只能用于循环中。
因此,break用于立即退出当前循环结构,而continue用于跳过本次迭代中的代码,直接进行下一轮迭代。
#include <stdio.h> int main() { // 使用break语句在内层循环中跳出 for(int i = 1; i <= 5; i++) { for(int j = 1; j <= 5; j++) { if(j == 3) { break; // 跳出内层循环 } printf("%d ", j); } printf("\n"); } printf("\n"); // 使用continue语句在内层循环中跳过当前迭代 for(int i = 1; i <= 5; i++) { for(int j = 1; j <= 5; j++) { if(j == 3) { continue; // 跳过输出数字3 } printf("%d ", j); } printf("\n"); } return 0; }
代码运行结果:
1 2 1 2 1 2 1 2 1 2 1 2 4 5 1 2 4 5 1 2 4 5 1 2 4 5 1 2 4 5
- 第一个循环中,使用break语句。每次内层循环到达j等于3时,会执行break语句跳出内层循环,因此只会输出1和2,然后换行,共输出5行。
- 第二个循环中,使用continue语句。每次内层循环到达j等于3时,会执行continue语句跳过数字3的输出,直接进入下一次迭代。这样就会输出除了数字3之外的1、2、4、5,然后换行,共输出5行。
~over~