C++学习(一)_循环结构
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++上循环结构的基本内容,如有错误,敬请指正。