» C++快速入门 » 1. 基础篇 » 1.4 控制流

控制流

在 C++ 中,控制流通过各种控制结构进行管理,例如条件语句(ifelseswitch)和循环(forwhiledo-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...
> 此处输出代码运行结果
上页
下页