기출문제 22쪽 67번에서
풀이과정을 보면 출력 결과가 x=7, y=-1이라고 하는데
답은 4번인 Unresolved compilation problem 오류네요.
2권 책에서도 이렇게 나와서 처음엔 오타인가 싶었는데 아닌가보네요..
왜 출력은 x-7,y=-1 인데 답은 4번인지 알 수 있을까요?
안녕하세요 길벗수험서 운영팀입니다.
해당 문제의 전문가의 조언 시작 시 올바른 코드로 수정되었을 때의 코드가 있으니 이를 확인해주세요.
Java 언어에서 조건식을 인수로 받는 자리의 자료형은 반드시 boolean이어야 합니다.
true 또는 false 값이 나와야 하죠.
단순히 0이 아니면 true, 0이면 false로 인식해버리는 C와는 다릅니다.
때문에 y--로만 적혀있는 while의 인수를 조건식인 y-->0으로 바꿔줍니다.
이는 앞에서 말했듯 C언어에서는 오류가 발생하지 않는 부분입니다.
println 부분 또한 인수의 사용이 잘못되었습니다.
텍스트 2개, 변수 2개를 출력하려는 형태로 보이는데, printf도 아니면서 +는 하나만 들어가 있습니다.
이를 수정하여 각 값들 사이에 +를 추가로 넣어주면 됩니다.
출력은 y가 6에서 0이 될 때까지 x++을 반복한다는 점
y는 후치 연산이므로 0이 된 이후에도 -1이 한번 더 수행된다는 점
을 염두에 두시고 디버깅을 수행해보세요.
행복한 하루되세요 :)
-
관리자2021-05-12 09:34:49
안녕하세요 길벗수험서 운영팀입니다.
해당 문제의 전문가의 조언 시작 시 올바른 코드로 수정되었을 때의 코드가 있으니 이를 확인해주세요.
Java 언어에서 조건식을 인수로 받는 자리의 자료형은 반드시 boolean이어야 합니다.
true 또는 false 값이 나와야 하죠.
단순히 0이 아니면 true, 0이면 false로 인식해버리는 C와는 다릅니다.
때문에 y--로만 적혀있는 while의 인수를 조건식인 y-->0으로 바꿔줍니다.
이는 앞에서 말했듯 C언어에서는 오류가 발생하지 않는 부분입니다.
println 부분 또한 인수의 사용이 잘못되었습니다.
텍스트 2개, 변수 2개를 출력하려는 형태로 보이는데, printf도 아니면서 +는 하나만 들어가 있습니다.
이를 수정하여 각 값들 사이에 +를 추가로 넣어주면 됩니다.
출력은 y가 6에서 0이 될 때까지 x++을 반복한다는 점
y는 후치 연산이므로 0이 된 이후에도 -1이 한번 더 수행된다는 점
을 염두에 두시고 디버깅을 수행해보세요.
행복한 하루되세요 :)