Tại sao việc gán biến val=0 lại trở thành kiểu luận lý C++?

Mình có đoạn code C++ như sau:

int val;
if(val=0)
{
cout<<"True";
}
else
{
cout<<"False";
}
return 0;

Tại sao kết quả lại là False ạ?
Việc gán val=0 không phải là kiểu luận lý tại sao nó lại trả về kết quả 0???
Mong mọi người có thể giải thích giúp.Xin cảm ơn :slight_smile:

Phép toán so sánh có mấy dấu bằng?
A. 1
B. 2
Hãy chọn đáp án đúng!

Thử gán bằng 1,2,3,4 xem sao.

3 Likes
  1. Trong C++, bên trong khối if điều kiện nếu là một số: trả về true nếu khác 0, false nếu == 0
  2. Phép toán gán có trả về giá trị, chính là toán hạng được gán

Từ 1 và 2 suy ra if (val = 0) tương đương với if(0) tương đương với false

2 Likes

Cảm ơn bạn Trần Hoàn. Câu trả lời này giúp mình rất nhiều :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?