Toán tử điều kiện ? : trong C++



Cú pháp của toán tử điều kiện ? : trong C++ là:

bieu_thuc_1 ? bieu_thuc_2 : bieu_thuc_3;

Ở đây, bieu_thuc_1, bieu_thuc_2 và bieu_thuc_3 là các biểu thức. Bạn chú ý sự sử dụng và vị trí của dấu hai chấm. Giá trị của một biểu thức ? được quyết định như sau: bieu_thuc_1 được ước lượng. Nếu nó là true, thì bieu_thuc_2 được ước lượng và trở thành giá trị của toàn bộ biểu thức ?. Nếu bieu_thuc_1 là false, thì bieu_thuc_3 được ước lượng và giá trị của nó trở thành giá trị của biểu thức ?.

Biểu thức ? được xem như là một toán tử tam phân bởi vì nó yêu cầu ba toán hạng và có thể được sử dụng để thay thế lệnh if-else, có form sau:

if(dieu_kien){
   var = X;
}else{
   var = Y;
}

Bạn xét code sau:

if(y < 10){ 
   var = 30;
}else{
   var = 40;
}

Code trên có thể được viết lại như thế này:

var = (y < 10) ? 30 : 40;

Ở đây, x được gán giá trị 30 nếu y nhỏ hơn 10 và được gán 40 nếu không nhỏ hơn 10. Bạn có thể thử ví dụ sau:

#include 
using namespace std;
 
int main ()
{
   // Khai bao bien cuc bo:
   int x, y = 10;   x = (y < 10) ? 30 : 40;   cout << "Gia tri cua x la: " << x << endl;
 
   return 0;
}

Khi code trên được biên dịch và thực thi, nó cho kết quả sau:

Gia tri cua x la: 40

toan_tu_trong_cplusplus.jsp