控制流
在 C++ 中,控制流通过各种控制结构进行管理,例如条件语句(if
、else
、switch
)和循环(for
、while
、do-while
)等等。
If Else
int x = 10;
if (x > 0) {
std::cout << "x is positive." << std::endl;
} else if (x < 0) {
std::cout << "x is negative." << std::endl;
} else {
std::cout << "x is zero." << std::endl;
}
Switch
switch
跳转到匹配的值。
int day = 3;
switch (day) {
case 1:
std::cout << "Monday" << std::endl;
break;
case 2:
std::cout << "Tuesday" << std::endl;
break;
// ... 其他情况
default:
std::cout << "Invalid day" << std::endl;
}
For 循环
在 for
循环中,初始化、条件和更新表达式都在括号内指定。只要条件为真,循环体就会重复执行。
for (int i = 0; i < 5; ++i) {
std::cout << "Iteration " << i << std::endl;
}
break 和 continue 语句
for (int i = 0; i < 10; ++i) {
if (i == 5) {
break; // 退出循环
}
if (i % 2 == 0) {
continue; // 跳过此处迭代
}
std::cout << i << std::endl;
}
Range-Based For 循环
C++ 在 C++11 中引入了基于范围的 for
循环,提供了一种简洁方便的方法来迭代容器(例如数组、向量或其他可迭代结构)中的元素。语法简单明了,代码更易读。
#include <iostream>
#include <vector>
int main() {
// 数组示例
int numbers[] = {1, 2, 3, 4, 5};
// 迭代数组中的每个元素
for (int number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
// 向量示例
std::vector<std::string> words = {"apple", "banana", "orange"};
// 迭代向量中的每个元素
for (const std::string& word : words) {
std::cout << word << " ";
}
std::cout << std::endl;
return 0;
}
While 循环
在 while
循环中,条件在进入循环之前被计算估值,只要条件为真,循环就会继续执行。
int count = 0;
while (count < 3) {
std::cout << "Count: " << count << std::endl;
++count;
}
Do While 循环
在 do-while
循环中,循环体至少执行一次,条件在每次迭代后检查。如果条件为真,循环继续;否则,终止循环。
int num = 5;
do {
std::cout << "Number: " << num << std::endl;
--num;
} while (num > 0);
Goto
goto
语句允许开发者将控制转移到程序的另一个标记处。通常不建议使用 goto
,因为它可能导致代码难以理解,难以维护。
int value = 0;
if (value < 0) {
goto negative;
}
std::cout << "Value is non-negative." << std::endl;
negative: // label 'negative'
std::cout << "Value is negative." << std::endl;
三元运算符
C++ 中的三元运算符 (? :
) 是条件表达式的简洁形式。它接受三个操作数:一个条件,如果条件为 true
则返回的值,以及如果条件为 false
则返回的值。
语法如下:
条件 ? 如果真的表达式 : 如果假的表达式;
以下是一个示例:
#include <iostream>
int main() {
int x = 10;
int y = 20;
// 使用三元运算符将 x 和 y 中较小的值赋给 result
int result = (x < y) ? x : y;
std::cout << "The smaller of " << x << " and " << y << " is: " << result << std::endl;
return 0;
}
代码挑战
写一个使用三元运算符确定并打印相应字母等级的 C++ 程序。
分级标准:
90-100: A 80-89: B 70-79: C 60-69: D 0-59: F
Loading...
> 此处输出代码运行结果