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