Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Toán tử ternary ?: so với if...else trong C/C++


Toán tử ternary (?:) và if-else có hiệu quả tương đương trong hầu hết trường hợp. Tuy nhiên, ternary có thể gán giá trị cho biến const, trong khi if-else không thể vì cần gán trong câu lệnh riêng biệt.

Ví dụ if-else thất bại với const

#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 20;
    const int x;
    if (a < b) {
        x = a;
    } else {
        x = b;
    }
    cout << x;
    return 0;
}

Chương trình không biên dịch được vì gán const ở câu lệnh riêng.

Ví dụ ternary thành công

#include <iostream>
using namespace std;

int main() {
    int a = 10, b = 20;
    const int x = (a < b) ? a : b;
    cout << x;
    return 0;
}

Kết quả

10