sratch wrote:
Em có đoạn mã như sau:
int max(int a,int b)
{
return(a>b) ? a:b;
}
các anh cho em hỏi cái a:b đằng sau dấu hỏi chấm có ý nghĩa gì vậy?
Đó là toán tử gán dựa vào điều kiện, rất phổ biến. Với C,C++,Java và C# đều có chung cú pháp là
Code:
condition ? statement 1 : statement2
Với condition là 1 biểu thức cho giá trị logic (là true hay false). Nếu là true thì lệnh statement1 sẽ được thực hiện, nếu false thì thực hiện lệnh statement2
VD đoạn cho bạn rõ
Code:
bool turnOn = true;
int bit = turnOn ? 1 : 0; // (1)
// (1) tương đương
// int bit;
// if( turnOn==true ) bit =1;
// else bit = 0;
bool turnOff = ( bit==0 ) ? true : false; // (2)
// (2) tương đương
// bool turnOff;
// if( bit==0 ) turnOff=true;
// else turnOff=false;