해결된 질문
작성
·
177
0
x = 5, y = 5의 경우
x equals y가 출력되는데, 선생님께서 x와 y가 같다고 잘못 결과를 내고 있다고 하시는데...
왜 결과가 잘못 나온 건가요?ㅠㅠ
x와 y가 똑같이 5인데 뭐가 잘못된 건지 잘 모르겠습니다ㅠㅠ
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
코드를 보지는 않았지만, 문제가 있는 경우라면 예측되는 결과와 실제 결과가 다를 것입니다.
이 경우에는 조건문에서 x == y로 비교하는 것이 아니라, x is y로 비교하는 것이 맞습니다. 이것은 x와 y가 같은 객체인지 체크하는 것이고, == 연산자는 객체의 값이 같은지 체크합니다.
즉, x와 y는 같은 값(5)이지만 다른 객체를 참조하고 있기 때문에, x == y의 결과는 False가 나와야 합니다.
그리고 결국 x equals y가 출력될 수 있는 것은, x와 y가 같은 객체를 참조하는 경우입니다. 이것은 매우 드물게 발생하는 경우며, 코드에서 이런 비교를 사용하면 안 좋습니다.
그러므로 코드에서는 x == y 대신 x is y를 사용해야 합니다.
이것이 도움이 되셨기를 바랍니다.