다음 코드가 있습니다. 이것은 내가 그것을 이해하는 방법입니다.Java 삼항 연산자 구문
첫 번째 경우 x=4
및 인쇄 문을 5
예상대로 인쇄하기 때문에 첫 번째 경우 y
값을 반환합니다.
두 번째 경우에서 삼항 연산자는 먼저 y 값을 x에 할당 한 다음 해당 값을 반환합니다. 다시 예상대로 5를 인쇄합니다. :
오른쪽 및 x=z
: 3 경우
는 삼원 작업자는 좌측의 x=y
있다. 나는 이것이 제 2의 경우와 같이 행동 할 것으로 기대합니다. 그러나이 문장은 컴파일되지 않습니다.
이해에 도움이 될 것입니다.
public class Test {
public static void main(String[] args) {
int x = 4;
int y = 5;
int z = -1;
x = (x == 4) ? y : z; // compiles and runs fine
System.out.println(x + " " + y + " " + z);
x = (x == 4) ? x = y : z; // compiles and runs fine
System.out.println(x + " " + y + " " + z);
x = (x == 4) ? x = y : x = z; // Does not compile
System.out.println(x + " " + y + " " + z);
}
}
'x = (x == 4)? (x = y) :(x = z); 또는 x = (x == 4)? x = y : (x = z); . – Tiny