01/10/2018, 09:43

Lỗi logic trong C++

Đoạn code trong ảnh mắc lỗi logic ở hàm if đầu tiên nhưng tại sao chương trình vẫn chạy và cho ra kết quả sai ( đúng ý đồ thì x=1,y=2) , tại sao lại như vậy?

Dark.Hades viết 11:45 ngày 01/10/2018
  == not =

20…

2D_team_free_online_Education viết 11:49 ngày 01/10/2018

bạn lên xem lại toán tử gán "="với toán tử so sánh “==”

NUTembedded viết 11:59 ngày 01/10/2018

Mình biết có lỗi sai phần toán tử gán và toán tử so sánh, nhưng mình không hiểu tại sao code sai mà máy vẫn chạy được chương trình?

Dark.Hades viết 11:49 ngày 01/10/2018

Code bạn sai logic còn không sai về quá trình biên dịch, mặc định lệnh gán giá trị vào biến nó sẽ trả về 2 giá trị là true hoặc false, bạn gán = thì máy nó thực hiện phép gán, sau đó trả về true, vậy nên if(x=0) tương đương if(true) và lúc này x sẽ gán = 0,…

Trần Hoàn viết 11:49 ngày 01/10/2018

không phải code sai mà là bạn hiểu sai. Phép gán là phép toán có trả về giá trị và giá trị đó nếu có thể chuyển thành bool thì sẽ chuyển thành bool
if(x = 2) = if(2) = if((bool)2) = if(true)
if(x = 0) = if(0) = if((bool)0) = if(false)
Và túm lại, (bool)0 == false và các giá trị khác thì true

Bài liên quan
0