좀 연습을 통과했지만, 난이 하나의 혼란 스러워요 :사전/사후 증가/감소 및 운영자 주문 혼란
public static int f (int x, int y) {
int b=y--;
while (b>0) {
if (x%2!=0) {
--x;
y=y-2;
}
else {
x=x/2;
b=b-x-1;
}
}
return x+y;
}
b=y--
의 목적은 무엇인가? 예를 들어, while 루프 (while (b>0)
)에 처음 들어가면 x=5
과 y=5
은 b
= 4 또는 5가 될 것입니까? 컴퓨터에서 코드를 실행할 때 b
은 5입니다. 반환 값은 3입니다. 이것은 나에게 정말로 불분명합니다. 미안, 내 질문에 불분명하다.
연산자 우선 순위 및 사전/사후 증가/감소 연산자에 대해 읽어보십시오. –
모든 단계에서 각 변수를 검사 할 수 있으므로 디버거에서 코드를 추적하면 매우 유용합니다. – alk