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

Toán tử ba ngôi (Ternary Operator) trong C/C++


Toán tử ba ngôi (ternary operator) cần ba toán hạng, ký hiệu ? :. Còn gọi là conditional operator (toán tử điều kiện). Cải thiện hiệu năng và giảm dòng code.

Cú pháp:

Expression1 ? Expression2 : Expression3

Ví dụ 1

#include <stdio.h>

int main() {
    int a = -1;
    double b = 26.4231;
    int c = a ? printf("True value: %lf", b) : printf("False value: 0");
    return 0;
}

Kết quả

True value: 26.423100

Expression1 luôn đánh giá. Expression2 chạy nếu Expression1 khác 0 (true), Expression3 chạy nếu Expression1 bằng 0 (false).

Toán tử ba ngôi có kiểu trả về, phụ thuộc Expression2 và khả năng chuyển đổi Expression3 sang kiểu Expression2. Nếu không chuyển đổi được → lỗi biên dịch.

Ví dụ 2

#include <stdio.h>

int main() {
    int x = -1, y = 3;
    double b = x + y + 0.5;
    int c = x < y ? printf("True value: %lf", b) : printf("False value: 0");
    return 0;
}

Kết quả

True value: 2.500000