java 논리연산자 || 질문있습니다
조회수 540회
int x = 100;
int y = 200;
boolean result = false;
result = x > y || y++ > 200;
System.out.println("x > y || y++ > 200 = " + result);
|| 연산자는 둘중에 하나라도 참이면 참을 표시한다고 하는데 y++면 값이 201이 되는거 아닌가요? 그럼 참으로 표시 되어야하는거 아닌가요??
1 답변
-
자바를 거의 모르지만... 구글에 대고 java ++ operation 이라고 검색해 보니 이런 정보가 나오네요.
핵심은,
++a
는 값을 증가시킨 다음 바로 그걸 돌려준다는 겁니다.a++
도 값을 (뒤에서) 증가시키기는 하지만 반환되기로는 아직 변화되지 않은 값이 그대로 반환됩니다. 그래서 실제로는 나중에 실행이 되는 것처럼 보이죠.그러면 원하시는 것은 아마도:
int x = 100; int y = 200; boolean result = false; result = (x > y || ++y > 200); // <-- 여기 중요 System.out.println("x > y || ++y > 200 --> " + result); // --> true
댓글 입력