在本章中,我们将详细介绍 C++ 中的循环结构。循环是编程中非常重要的概念,它允许我们重复执行一段代码直到满足特定条件为止。C++ 提供了多种类型的循环,包括 for、while 和 do-while 循环。通过学习这些循环,你将能够编写更高效、更简洁的代码。
for 循环
for 循环是一种常见的循环结构,用于在已知迭代次数的情况下重复执行一段代码。它的基本语法如下:
for (初始化; 条件; 更新) {
// 循环体
}初始化
在循环开始之前执行一次,通常用于声明和初始化一个计数器变量。
条件
每次循环开始时都会检查该条件,如果为真,则继续循环;否则退出循环。
更新
每次循环结束后都会执行更新语句,通常用于改变计数器变量的值。
示例:使用 for 循环打印数字
#include <iostream>
int main() {
for (int i = 1; i <= 5; ++i) {
std::cout << "数字: " << i << std::endl;
}
return 0;
}这段代码会输出从 1 到 5 的数字。
while 循环
while 循环用于在不确定迭代次数的情况下重复执行一段代码。只要条件为真,就会一直执行循环体内的代码。其基本语法如下:
while (条件) {
// 循环体
}示例:使用 while 循环计算阶乘
// www.javascriptcn.com code example
#include <iostream>
int main() {
int n, result = 1;
std::cout << "请输入一个正整数: ";
std::cin >> n;
int i = 1;
while (i <= n) {
result *= i;
++i;
}
std::cout << n << " 的阶乘是: " << result << std::endl;
return 0;
}这段代码会提示用户输入一个正整数,并计算该数的阶乘。
do-while 循环
do-while 循环与 while 循环类似,但有一个关键的区别:无论条件是否为真,do-while 循环至少会执行一次循环体。其基本语法如下:
do {
// 循环体
} while (条件);示例:使用 do-while 循环读取用户输入
// www.javascriptcn.com code example
#include <iostream>
int main() {
int num;
do {
std::cout << "请输入一个大于 0 的整数: ";
std::cin >> num;
} while (num <= 0);
std::cout << "你输入的数字是: " << num << std::endl;
return 0;
}这段代码会不断要求用户输入一个大于 0 的整数,直到用户输入符合要求为止。
循环控制语句
除了上述三种循环结构外,C++ 还提供了几种控制循环流程的语句,包括 break、continue 和 goto。
break
break 语句用于立即退出当前循环。当程序执行到 break 语句时,会跳过循环体剩余部分并终止循环。
示例:使用 break 跳出循环
// www.javascriptcn.com code example
#include <iostream>
int main() {
for (int i = 1; i <= 10; ++i) {
if (i == 6) {
break;
}
std::cout << "数字: " << i << std::endl;
}
return 0;
}这段代码会在输出到数字 5 后立即终止循环。
continue
continue 语句用于跳过当前循环的剩余部分,并立即进入下一次循环。
示例:使用 continue 跳过某些循环
// www.javascriptcn.com code example
#include <iostream>
int main() {
for (int i = 1; i <= 10; ++i) {
if (i % 2 == 0) {
continue;
}
std::cout << "奇数: " << i << std::endl;
}
return 0;
}这段代码只会输出 1 到 10 之间的奇数。
goto
goto 语句允许程序无条件地跳转到程序中的另一个标签位置。虽然 goto 可以在某些情况下简化代码逻辑,但过度使用 goto 会导致代码难以理解和维护。
示例:使用 goto 实现简单的循环逻辑
// www.javascriptcn.com code example
#include <iostream>
int main() {
int i = 1;
loop_start:
if (i > 10) {
goto loop_end;
}
std::cout << "数字: " << i << std::endl;
++i;
goto loop_start;
loop_end:
return 0;
}这段代码使用 goto 实现了一个简单的从 1 到 10 的数字输出。
通过掌握这些循环结构及其控制语句,你可以编写更加灵活和高效的 C++ 程序。希望你在后续的学习过程中能够熟练运用这些知识。