-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
3.6강의 16:49
23.09.14 13:24 작성 조회수 171
1
if(x==1 && y++==2)에서
++가 ==보다 우선순위가 높아
y가 3이되고 2랑 같지않게되어서
False이므로 중괄호안에 문장이 실행되지 않아야하는거아닌가요?제가 안에 문장넣엇는데 실행이되어서 헷갈리네요..
답변을 작성해보세요.
3
Soobak
2023.09.15
안녕하세요, 답변 도우미 Soobak 입니다.
후위 연산자의 작동 방식을 이해하시는 것이 중요합니다.
질문해주신 코드 라인에서 y++
는 후위 증가 연산자 입니다.
해당 연산자는 변수의 현재 값을 먼저 반환하고, 그 다음 변수의 값을 1
증가 시킵니다.
즉, 만약 y
의 값이 2
라면, y++
는 먼저 2
를 반환한 다음에 y
의 값을 3
으로 증가시킵니다.
질문 주신 코드의 동작 방식을 구체적으로 살펴보면 다음과 같습니다.
if (x == 1 && y++ == 2) {
// ...
}
: 위 코드에서 x
의 값이 1
이고, y
의 값이 2
라면 다음과 같이 동작합니다.
x == 1
은true
입니다.y++
에서y
의 현재 값인2
를 반환합니다. 따라서,y++ == 2
는true
입니다.연산이 끝난 후
y
의 값은3
으로 증가합니다.
따라서, x == 1
이 true
이고, y
의 값이 2
일 때, 위 if
조건문은 true
로 평가되어 중괄호 안의 코드 블럭이 실행되는 것입니다.
답변 1