Java의 후위 증가 연산자
후위 증가 연산자( )는 변수의 값을 1씩 증가시키는 단항 연산자입니다. , 의미가 다소 혼란스러울 수 있습니다.
다음 코드 세그먼트를 고려하세요.
<code class="java">int j = 0; for (int i = 0; i < 100; i++) { j = j++; } System.out.println(j); // prints 0</code>
여기서 루프 이후 j 값은 0으로 유지됩니다. 이 동작은 언뜻 보기에는 직관에 어긋나지만 컴파일러가 수행한 단계를 검토하면 이해할 수 있습니다.
기본적으로 사후 증가 연산자는 변수를 증가시키기 전에 변수의 원래 값을 저장합니다. 이는 다음 코드 블록과 유사합니다.
<code class="java">int temp = j; j++; j = temp;</code>
반대로 다음 코드 세그먼트를 고려하세요.
<code class="java">int a = 0, b = 0; a = b++; System.out.println(a); // prints 0 System.out.println(b); // prints 1</code>
여기서 a에는 원래 값 b(0)가 할당됩니다. 그런 다음 b가 증가합니다. 이 동작은 후위 증가 연산자를 사용한 할당이 오른쪽을 먼저 평가하고 변수를 증가시킨 다음 원래 값을 할당하는 규칙을 준수합니다.
이전 예에 동일한 논리를 적용하면 다음과 같은 결과를 얻을 수 있습니다. j = j 결과가 0인 이유를 확인하세요.
따라서 사후 증가 연산자는 예상치 못한 결과를 초래할 수 있습니다. 제대로 이해되지 않으면 결과가 나타납니다. 표현식을 평가한 후 변수를 증가시키고 원래 값을 변수에 할당한다는 점을 기억하는 것이 중요합니다.
위 내용은 Java에서 `j = j ;`가 `j`를 변경하지 않고 그대로 두는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!