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