记录自己对于循环中不清楚的地方,方便后续查阅
1、循环类型
主要是while循环和do-while循环
while循环:先测试条件在执行循环体
do-while循环:先执行循环体再测试条件
2、循环控制语句
break语句
终止循环或 switch 语句中的一个case,程序流将继续执行紧接着循环或 switch 的下一条语句。
示例代码#include <stdio.h> int main () { /* 局部变量定义 */ int a = 10; /* while 循环执行 */ while( a < 20 ) { printf("a 的值: %d\n", a); a++; if( a > 15) { /* 使用 break 语句终止循环 */ break; } } return 0; }
输出结果
a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 15
注:当程序执行到a=15,while语句条件满足,打印a=15,a自增1变为16,if判断条件满足,执行break,跳出的是while循环(不是if判断)执行 return 0语句,程序执行完毕。
如果是嵌套循环(即一个循环内嵌套另一个循环),break 语句会停止执行最内层的循环,然后开始执行该块之后的下一行代码。continue语句
告诉一个循环体立刻停止本次循环迭代,重新开始下次循环迭代。会跳过当前循环中的代码,强迫开始下一次循环.
对于 for 循环,continue 语句执行后自增语句仍然会执行。对于 while 和 do...while 循环,continue 语句 重新执行条件判断语句。
示例代码#include <stdio.h> int main () { /* 局部变量定义 */ int a = 10; /* do 循环执行 */ do { if( a == 15) { /* 跳过迭代 */ a = a + 1; continue; } printf("a 的值: %d\n", a); a++; }while( a < 20 ); return 0; }
输出结果
a 的值: 10 a 的值: 11 a 的值: 12 a 的值: 13 a 的值: 14 a 的值: 16 a 的值: 17 a 的值: 18 a 的值: 19
注:当程序执行到a=14,do一次循环体,if判断不满足,执行printf输出a=14,之后a自增1变为15,判断条件15<20满足,再进行do循环体,此时if判断满足,a变为16,执行continue后,结束本次循环,不执行printf和a++,直接执行条件判断语句16<20,满足条件执行do循环体,不满足if判断,执行printf输出a=16,之后a自增1变为17,后面的执行和a=14之前一致,直到do-while的条件判断不满足,停止循环,执行return 0