Toán tử ? và : trong C có nghĩa gì ?!

Cho em hỏi toán tử ? và : trong C có nghĩa là gì ạ.
Ví dụ như đoạn code sau: player=(player%2)?1:2;
Em cảm ơn.

à. Cái này là 1 dạng if rút gọn, có thể hiểu như sau:

if (player % 2) {
    player = 1;
} else {
    player = 2;
}

Lưu ý là loại này thường chỉ sử dụng cho 1 câu lệnh. thường dùng để gán giá trị trả về
Tên tiếng Anh của nó là Ternary Operators (?:slight_smile:
Nếu muốn lòng thêm cấp.

if (player % 2 == 1) {
    player = 1;
} else {
    if (player % 2 == 0) {
       player = 2;
    } else {
       player = 3;
    }
}

thì được viết như sau:

player = (player % 2 == 1) ? 1 : ((player % 2 == 0) ? 2 : 3);
4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?