Toán tử điều kiện này còn được gọi là toán tử bậc ba. Toán tử này có ba giai đoạn.
Exp1 ? Exp2 : Exp3;
trong đó Exp1, Exp2 và Exp3 là các biểu thức. Chú ý công dụng và vị trí của dấu hai chấm. Giá trị của a? biểu thức được xác định như thế này:Exp1 được đánh giá. Nếu nó là true, thì Exp2 được đánh giá và trở thành giá trị của toàn bộ? biểu hiện. Nếu Exp1 là false, thì Exp3 được đánh giá và giá trị của nó trở thành giá trị của biểu thức.
Các ? được gọi là toán tử bậc ba vì nó yêu cầu ba toán hạng và có thể được sử dụng để thay thế các câu lệnh if-else, có dạng sau
if(condition) { var = X; } else { var = Y; }
Ví dụ:hãy xem xét đoạn mã sau
if(y < 10) { var = 30; } else { var = 40; }
Đoạn mã trên có thể được viết lại như thế này
var = (y < 10) ? 30 : 40;
Mã mẫu
#include <iostream> using namespace std; int main () { // Local variable declaration: int x, y = 10; x = (y < 10) ? 30 : 40; cout << "value of x: " << x << endl; return 0; }
Đầu ra
value of x: 40