Menu
CoddyTech

Toán tử điều kiện ba ngôi

Thuộc phần Nền tảng cơ bản trong hành trình C của Coddy. Bài học 29 trên 63.

Toán tử điều kiện ba ngôi (ternary conditional operator) là cách viết tắt câu lệnh if-else trên một dòng.

Cú pháp là:

condition ? value_if_true : value_if_false;

Hãy xem một ví dụ. Trước tiên, đây là câu lệnh if-else truyền thống:

int max;
if (a > b) {
    max = a;
} else {
    max = b;
}

Bây giờ, hãy viết lại bằng toán tử ba ngôi:

int max = (a > b) ? a : b;

Trong ví dụ này:

  • a > b là điều kiện
  • Nếu điều kiện đúng, a sẽ được trả về
  • Nếu điều kiện sai, b sẽ được trả về

Toán tử ba ngôi cũng có thể lồng nhau, nhưng điều này có thể khiến code khó đọc hơn:

int x = (a > b) ? ((a > c) ? a : c) : ((b > c) ? b : c);
challenge icon

Thử thách

Dễ

Tạo một chương trình kiểm tra xem một số là số dương, số âm hay số không bằng toán tử điều kiện. Chương trình cần:

  1. Nhận đầu vào là một số nguyên từ người dùng.
  2. Dùng toán tử điều kiện để xác định số đó là số dương, số âm hay số không.
  3. In kết quả theo định dạng: "The number is [positive/negative/zero]".

Tự làm thử

#include <stdio.h>

int main() {
    int number;
    scanf("%d", &number);
    
    // Viết code của bạn bên dưới
    // Thay văn bản giữ chỗ bằng một biểu thức điều kiện (conditional expression)
    char* result = "zero";
    
    printf("The number is %s\n", result);
    return 0;
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Nền tảng cơ bản

Tự luyện tập: Trình biên dịch C online