INT(i/2)=i/2가 이해가 안됩니다
i=1일때 왜 INT(i/2)=i/2=1 인가요?
안녕하세요 길벗수험서 운영팀입니다.
int함수의 용도를 정확히 파악하세요.
int함수는 괄호()안의 수를 정수로 바꾸는 함수로 소수점 데이터를 '버림' 처리합니다.
즉 int(i/2) = i/2 는 i가 2의 배수일 때 참을, 2의 배수가 아닐 때 거짓을 반환하게 됩니다.
i가 1일 때는, 0 = 0.5 를 비교하므로 거짓으로 J = J-(i/(i+1))을 수행하고
i가 2일 때는, 1 = 1 을 비교하므로 참이되어 J = J+(i/(i+1))을 수행하게 되죠.
이것이 홀짝홀짝 반복하게 됩니다.
참고로 디버깅표는 단순히 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 한 행에 모든 변화값이 적힌다고 생각하시면 안됩니다.
간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.
행복한 하루되세요 :)
-
관리자2019-04-04 14:22:50
안녕하세요 길벗수험서 운영팀입니다.
int함수의 용도를 정확히 파악하세요.
int함수는 괄호()안의 수를 정수로 바꾸는 함수로 소수점 데이터를 '버림' 처리합니다.
즉 int(i/2) = i/2 는 i가 2의 배수일 때 참을, 2의 배수가 아닐 때 거짓을 반환하게 됩니다.
i가 1일 때는, 0 = 0.5 를 비교하므로 거짓으로 J = J-(i/(i+1))을 수행하고
i가 2일 때는, 1 = 1 을 비교하므로 참이되어 J = J+(i/(i+1))을 수행하게 되죠.
이것이 홀짝홀짝 반복하게 됩니다.
참고로 디버깅표는 단순히 변수가 변하는 값을 순서대로 적어서 기록합니다.
단순히 순서도 또는 코드에서 각 변수들의 값이 변할 때마다 값을 적는 것에 불과하기 때문에, 한 행에 모든 변화값이 적힌다고 생각하시면 안됩니다.
간혹 이해를 돕기 위해 회전수에 맞춰 디버깅표에 선을 그어 끊어서 표기한 경우도 있으니, 디버깅표를 참고하실 때는 이를 염두에 두시기 바랍니다.
행복한 하루되세요 :)