1、循环
只要达到指定条件,循环就可以执行代码块。循环很方便,因为它们可以节省时间,减少错误并且使代码更具可读性。
循环是一种控制结构,用于反复执行一段代码,直到满足某种条件。循环在许多编程场景中被广泛使用,如遍历数组、处理数据、实现算法等。
2、C++ while 循环
只要指定条件为true
,while
循环就会循环遍历一段代码:
语法
while (condition)
{
// 要执行的代码块
}
在下面的示例中,只要变量(i
)小于5,循环中的代码就会一次又一次地运行:
例如:
#include <iostream> using namespace std; int main() { int i = 1; while (i <= 5) { cout << i << " "; i++; } return 0; }
注意:一定要改变while
条件中使用的变量,否则循环将不会结束。
3、do while 循环语句
do-while
循环是一种后测试循环结构,保证循环体至少执行一次,然后再检查条件是否满足。即使条件一开始为假,do-while
循环也会先执行一次循环体,然后再判断是否继续。
语法
do {
// 要执行的代码块
}
while (condition);
下面的示例使用do while
循环。即使while
条件为false
,循环也将至少执行一次,因为代码块是在条件判断之前执行的:
例如,
#include <iostream> using namespace std; int main() { int i = 1; do { cout << i << " "; i++; } while (i <= 5); return 0; }
注意:不要忘记改变条件中使用的变量,否则循环将会一直执行下去,不会结束。
4、break 关键字
C++中,while
循环语句与break
语句的结合使用可以让我们在特定条件满足时退出循环。break
用于立即中断循环,无论循环条件是否为真。
break
跳出最里层的循环,并且继续执行该循环下面的语句。
例如,
#include <iostream> using namespace std; int main() { int count = 0; // while循环,初始条件为true,因此循环会一直执行 while (true) { cout << "Count is: " << count << endl; count++; // 如果 count 达到 5,使用 break 语句退出循环 if (count == 5) { cout << "Breaking out of the loop as count reached 5." << endl; break; // 立即中断循环 } } cout << "Loop ended." << endl; return 0; }
5、continue 关键字
C++中,continue
语句用于跳过当前循环迭代中的剩余代码,直接进入下一次循环迭代。在while
循环中,continue
语句会使程序立即跳回到循环条件的检查部分,而不执行continue
之后的语句。
在 while
或者 do while
循环中,程序立即跳转到表达式的判断语句。
#include <iostream> int main() { int i = 0; while (i < 10) { i++; // 增加 i 的值 // 如果 i 是偶数,跳过本次循环迭代 if (i % 2 == 0) { continue; } // 打印 i 的值(仅奇数会被打印) std::cout << "i = " << i << std::endl; } return 0; }
6、使用示例
输入数字并求和,直到输入负数停止,用户可以输入一组正数进行累加求和。当用户输入0时,跳过该迭代;当用户输入负数时,停止输入并输出总和。
#include <iostream> using namespace std; int main() { int number; int sum = 0; do { cout << "Enter a positive number (negative number to stop): "; cin >> number; if (number < 0) { // 当输入负数时,退出循环 break; } if (number == 0) { // 如果输入0,跳过本次循环,继续下一个迭代 continue; } // 累加输入的数字 sum += number; } while (true); // 无限循环,直到 break 终止 cout << "Total sum of positive numbers: " << sum << endl; return 0; }