文章目录
- 一、while 循环
- 二、do...while 循环
- 三、for 循环
- 四、嵌套循环
- 五、跳转语句
- 5.1 break 语句
- 5.2 continue 语句
- 5.3 goto 语句
有的时候,可能需要多次执行同一块代码。一般情况下,语句是顺序执行的:函数中的第一个语句先执行,接着是第二个语句,依此类推。
编程语言提供了允许更为复杂的执行路径的多种控制结构。
一、while 循环
作用:满足循环条件,执行循环语句。
语法:while(循环条件){循环语句块}
流程图:
示例:
#include <iostream>
using namespace std;
int main()
{
int sum = 0, val = 50;
// 只要 val 的值小于等于10,while 循环就会持续执行
while (val <= 100)
{
sum += val; // 将 sum + val 赋值给 sum
++val; // 将 val + 1
}
cout << "Sum of 1 to 10 inclusive is "
<< sum << endl;
return 0;
}
二、do…while 循环
作用:满足循环条件,执行循环语句。
语法:do{循环语句}while(循环条件)
流程图:
注意:与 while 的区别在于 do … while 会先执行一次循环语句,再判断循环条件。
示例:求所有三位数中的水仙花数。
#include <iostream>
using namespace std;
int main()
{
// 求出三位数中,所有的水仙花数
int num = 100;
int ge = 0;
int shi = 0;
int bai = 0;
do{
ge = num % 10;
shi = num / 10 % 10;
bai = num / 100;
if (ge * ge * ge + shi * shi * shi + bai * bai * bai == num)
{
cout << num << endl;
}
num++;
} while (num <= 999);
return 0;
}
三、for 循环
作用:满足循环条件,执行循环语句。
语法:for(起始表达式; 条件表达式;末尾循环体){循环语句;}
示例:计算 1~N 之间所有奇数之和。
#include <iostream>
using namespace std;
int main()
{
int num = 0;
int sum = 0;
cin >> num;
for (int i = 0; i <= num; i++)
{
if (i % 2 != 0)
{
sum += i;
}
}
cout << sum << endl;
return 0;
}
四、嵌套循环
作用:在循环中再嵌套一层循环,解决一些实际问题。
示例:实现九九乘法表
#include <iostream>
using namespace std;
int main()
{
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
cout << i << " * " << j << " = " << i * j << " ";
}
cout << endl;
}
return 0;
}
五、跳转语句
5.1 break 语句
C++ 中 break 语句有以下两种用法:
- 当 break 语句出现在一个循环内时,循环会立即终止,且程序流将继续执行紧接着循环的下一条语句。
- 它可用于终止 switch 语句中的一个 case。
5.2 continue 语句
C++ 中的 continue 语句有点像 break 语句。但它不是强迫终止,continue 会跳过当前循环中的代码,强迫开始下一次循环。
对于 for 循环,continue 语句会导致执行条件测试和循环增量部分。对于 while 和 do…while 循环,continue 语句会导致程序控制回到条件测试上。
5.3 goto 语句
goto 语句允许把控制无条件转移到同一函数内的被标记的语句。
注意:在任何编程语言中,都不建议使用 goto 语句。因为它使得程序的控制流难以跟踪,使程序难以理解和难以修改。任何使用 goto 语句的程序可以改写成不需要使用 goto 语句的写法。