반응형
! =와 =!의 차이점은 무엇입니까? 자바?
이 질문에 이미 답변이 있습니다.
- 이게 뭐야 =! 운영자? 13 답변
모의 OCJP 질문을 살펴보고 있었습니다 . 정말 당혹스러운 구문을 발견했습니다. 여기있어:
class OddStuff {
public static void main(String[] args) {
boolean b = false;
System.out.println((b != b));// False
System.out.println((b =! b));// True
}
}
출력이 !=
와 사이에서 변경되는 이유는 무엇 =!
입니까?
문제는 혼란스러운 간격을 가지고 노는 것입니다.
b != b
일반적인 !=
(같지 않음) 비교입니다.
반면에 :
b =! b
다음과 같이 b = !b
구문 분석되는 것이 더 좋습니다 .
b = (!b)
따라서 두 연산자입니다.
- 먼저 반전
b
. - 그런 다음에 다시 할당합니다
b
.
할당 연산자는 할당 된 값을 반환합니다. 따라서 (b =! b)
인쇄 한 내용이 참으로 평가됩니다.
b != b
의미 ! (b == b)
: b == b
.
b =! b
실제로 b = !b
는 할당입니다. b
의 가치를 토글하고 있습니다. 할당은 표현식의 값으로 평가되므로 값이 !b
변경됨과 함께 다음으로 평가됩니다 b
.
b=!b
과제입니다. 그것은 할당 b
에 !b
되고, 얻어진 값을 평가하여 표현 true
.
b =! 비
당신은 할당을하고 있고, 당신은 B가! B의 값을 가져야한다고 말하는 것입니다.
b! = b
B가 b와 다른지 묻습니다.
참조 URL : https://stackoverflow.com/questions/8825840/what-is-the-difference-between-and-in-java
반응형
'programing tip' 카테고리의 다른 글
ItemsControl의 항목 사이에 구분 기호를 추가하는 방법 (0) | 2020.12.29 |
---|---|
strtotime 및 date를 사용하여 오늘을 기준으로 이전 월과 연도를 얻는 방법은 무엇입니까? (0) | 2020.12.29 |
bash 별칭에서 힘내 자동 완성? (0) | 2020.12.29 |
adb remount 권한이 거부되었지만 셸에서 슈퍼 사용자에 액세스 할 수 있음 — android (0) | 2020.12.29 |
Ubuntu에 특정 버전의 Node를 설치하는 방법은 무엇입니까? (0) | 2020.12.29 |