C语言循环控制语句是一个基于C语言的编程语句,该语句主要有while循环语句、do-while循环语句和for循环语句来实现循环结构。
while 循环
结构: while (表达式){ 语句1; 语句2; ... }
只要控制表达式为 true,while 循环就会反复地执行语句。
while 表达式是顶部驱动(top-driven)的循环:即先判断循环条件(也就是控制表达式)。如果为 true,就执行循环体,然后再次判断控制表达式。如果控制表达式为 false,该循环结束。
例1:使用while循环计算自然数1-10的和。 #include<iostream> using namespace std; int main() { int i = 1; int sum = 0; while(i <= 10){ sum += i; i++; } cout << "1-10的和为" << sum << endl; return 0; }
for 循环
和 while 一样,for 循环也是一个顶部驱动的循环
for([表达式1];[表达式2];[表达式3]){ 语句1; 语句2; ... }
在一个常规的 for 循环中,在循环体顶部,下述三个动作需要执行:
- 表达式1:循环变量初始化
- 表达式2:判断是否需要继续本轮循环。当表达式2的结果为 false,结束循环。
- 表达式3:循环变量自增或自减
Note:
- for 循环头部中的三个表达式可以省略一个或多个。
- 如果没有控制表达式,则表示循环条件始终是 true。
- 一般来说,当循环内有计数器或索引变量需要被初始化,并且在每次循环时需要调整它们的值时,最好使用 for 循环,而不是 while 循环。
事实上,每个 for 循环都可以被改写成 while 循环,反之亦然。
将例1改写为for循环:
#include<iostream> using namespace std; int main() { int i; int sum = 0; for(i = 1; i <= 10; i++){ sum += i; } cout << "1-10的和为" << sum << endl; return 0; }
do while循环
do{ 语句1; 语句2; ... } while(表达式);
注意:与 while 和 for 循环不同的是,do...while 循环会确保循环体语句至少执行一次。即在控制表达式被第一次计算之前,循环体语句会首先被执行一次。
将例1改写为do while循环:
#include<iostream> using namespace std; int main() { int i = 1; int sum = 0; do{ sum += i; i++; } while(i <= 10); cout << "1-10的和为" << sum << endl; return 0; }
三种循环辅助控制性语句(break,continue,goto)
1.break
break 可以用来从循环体中跳出循环体,即提前结束循环.
注意:
- break不能和循环语句和switch语句以外的语句连用;
- break 对if-else 不起作用
- break语句只能向外跳出一层
例1(改):当i循环到5时,使用break跳出循环 #include<iostream> using namespace std; int main() { int i; int sum = 0; for(i = 1; i <= 10; i++){ sum += i; if(i == 5){ break; } } cout << "1-10的和为" << sum << endl; return 0; }
运行结果为:1-10的和为15.
证明break语句使得循环提前结束
2.continue
用来结束本次循环(即跳过循环体中尚未执行的部分),接着执行循环是否执行的判断.
例2:输出100以内的能被3整除的数 #include<iostream> using namespace std; int main() { int i; for(i = 1; i <= 100; i++) { if(i % 3 == 0){ cout << i << '\t'; continue; } if(i % 3 != 0) continue; cout << i << '\t';//由于continue语句,该句不会被执行 } return 0; }
3.goto
goto语句也称为无条件转移语句,其一般格式如下:
goto 语句标号;
其中语句标号是按标识符规定书写的符号, 放在某一语句行的前面,标号后加冒号(:)。语句标号起标识语句的作用,与goto 语句配合使用。
goto语句通常与条件语句配合使用。可用来实现条件转移, 构成循环,跳出循环体等功能。
但是,在结构化程序设计中一般不主张使用goto语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难。
以上为我总结的C++上循环结构的基本内容,如有错误,敬请指正。