dbdvn12   5년 전

다른 예들도 넣어봤는데

맞게 나오는데

결과가 틀렸다고 나오네요.. ㅠㅠ

djm03178   5년 전

Arr[i]는 Integer 객체입니다. 객체 사이의 == 연산은 두 객체가 완전히 같은 객체인지를 검사합니다.

Integer의 경우 127까지는 미리 객체를 생성해두고, 사용하려 할 때는 그 객체를 반환만 하기 때문에 127 이하의 Integer 객체들에 대해서 == 연산을 하면 원하는 대로 결과가 잘 나옵니다. 하지만 그 값이 128 이상이 될 경우 Integer는 매번 새로운 객체를 만들어 주므로, Arr[0]와 Arr[1]이 내부적으로 같은 값을 저장하고 있더라도 == 연산은 false를 반환할 수 있습니다.

그래서 Integer 객체의 비교에서는 반드시 equals 메서드를 써서 비교해 줘야 합니다.

그리고 97, 65 같은 수를 쓰는 건 좋지 못한 습관입니다. 'a', 'A' 로 쓰는 것이 훨씬 명확하고 가독성이 좋은데 굳이 아스키 코드로 쓸 필요가 없죠.

dbdvn12   5년 전

정말 감사합니다.

equal에 대해서 배웠는데 제가 까먹고 있었네요..

그리고 충고 감사합니다

습관 고치도록 할게요

댓글을 작성하려면 로그인해야 합니다.