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 > blà điều kiện- Nếu điều kiện đúng,
asẽ được trả về - Nếu điều kiện sai,
bsẽ đượ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);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:
- Nhận đầu vào là một số nguyên từ người dùng.
- Dùng toán tử điều kiện để xác định số đó là số dương, số âm hay số không.
- 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;
}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
4Luồng điều khiển
Câu lệnh ifIf - elseElse-ifSwitch caseToán tử điều kiện ba ngôiThử thách ôn tậpIf - else lồng nhau2Biến
Kiểu dữ liệuSố nguyênSố thực - DoubleKý tựGiá trị BooleanHằng sốCơ bản về printfQuy tắc đặt tên biếnChuyển đổi kiểu phần 1Chuyển đổi kiểu phần 2Thử thách ôn tậpTự luyện tập: Trình biên dịch C online