时间:2023-02-04 11:15:02 | 栏目:C代码 | 点击:次
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
编程语言提供了允许更为复杂的执行路径的多种控制结构。
循环语句允许我们多次执行一个语句或语句组。
当给定条件为真时,重复语句或语句组。它会在执行循环主体之前测试条件。
1.1用法
while(condition) { statement(s); }
例子:
#include <iostream> using namespace std; int main () { int a = 1; while( a < 10 ) { cout << "a 的值:" << a << endl; a++; } return 0; }
输出:
a 的值:1
a 的值:2
a 的值:3
a 的值:4
a 的值:5
a 的值:6
a 的值:7
a 的值:8
a 的值:9
多次执行一个语句序列,简化管理循环变量的代码。
2.1用法
for ( init; condition; increment ) { statement(s); }
例子:
#include <iostream> using namespace std; int main () { for(int a = 1; a <= 10; a++) { cout << "a 的值:" << a << endl; } return 0; }
输出:
a 的值:1
a 的值:2
a 的值:3
a 的值:4
a 的值:5
a 的值:6
a 的值:7
a 的值:8
a 的值:9
a 的值:10
除了它是在循环主体结尾测试条件外,其他与 while 语句类似。
3.1用法
不像 for 和 while 循环,它们是在循环头部测试循环条件。do…while 循环是在循环的尾部检查它的条件。
do…while 循环与 while 循环类似,但是 do…while 循环会确保至少执行一次循环。
do { statement(s); }while( condition )
例子:
#include <iostream> using namespace std; int main () { int a = 0; do { cout << "a 的值:" << a << endl; a = a + 1; }while( a < 20 ); return 0; }
输出:
a 的值:0
a 的值:1
a 的值:2
a 的值:3
a 的值:4
a 的值:5
a 的值:6
a 的值:7
a 的值:8
a 的值:9
a 的值:10
a 的值:11
a 的值:12
a 的值:13
a 的值:14
a 的值:15
a 的值:16
a 的值:17
a 的值:18
a 的值:19
循环控制语句更改执行的正常序列。当执行离开一个范围时,所有在该范围中创建的自动对象都会被销毁。
终止 loop 或 switch 语句,程序流将继续执行紧接着 loop 或 switch 的下一条语句。
1.1用法
当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
它可用于终止 switch 语句中的一个 case。
例子:
#include <iostream> using namespace std; int main () { int a = 0; do { cout << "a 的值:" << a << endl; a = a + 1; if(a > 10) { break; } }while( a < 20 ); return 0; }
输出:
a 的值:0
a 的值:1
a 的值:2
a 的值:3
a 的值:4
a 的值:5
a 的值:6
a 的值:7
a 的值:8
a 的值:9
a 的值:10
引起循环跳过主体的剩余部分,立即重新开始测试条件。
C++ 中的 continue 语句有点像 break 语句。但它不是强迫终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。
对于 for 循环,continue 语句会导致执行条件测试和循环增量部分。对于 while 和 do…while 循环,continue 语句会导致程序控制回到条件测试上。
例子:
#include <iostream> using namespace std; int main () { for(int a = 1; a <= 10; a++) { if(a == 8) { cout << "这是一次跳过" << endl; continue; } cout << "a 的值:" << a << endl; } return 0; }
输出:
a 的值:1
a 的值:2
a 的值:3
a 的值:4
a 的值:5
a 的值:6
a 的值:7
这是一次跳过
a 的值:9
a 的值:10
goto 语句允许把控制无条件转移到同一函数内的被标记的语句。
3.1用法
goto label; .. . label: statement;
例子:
#include <iostream> using namespace std; int main () { int tag = 1; LOOP: for(int a = 1; a <= 15; a++) { if (a == 8 && tag == 1) { cout << "这是一次跳过" << endl; tag = 0; goto LOOP; } cout << "a 的值:" << a << endl; } return 0; }
输出:
a 的值:1
a 的值:2
a 的值:3
a 的值:4
a 的值:5
a 的值:6
a 的值:7
这是一次跳过
a 的值:1
a 的值:2
a 的值:3
a 的值:4
a 的值:5
a 的值:6
a 的值:7
a 的值:8
a 的值:9
a 的值:10
a 的值:11
a 的值:12
a 的值:13
a 的值:14
a 的值:15
如果条件永远不为假,则循环将变成无限循环。for 循环在传统意义上可用于实现无限循环。由于构成循环的三个表达式中任何一个都不是必需的,您可以将某些条件表达式留空来构成一个无限循环。
#include <iostream> using namespace std; int main () { for( ; ; ) { cout << "666" << endl; } return 0; }
上面的代码将会无限循环的打印666