inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

홍정모의 따라하며 배우는 C언어

5.4 곱하기 연산자

질문이요

173

aaa164949

작성한 질문수 9

1

25줄에 이해가 안 되는 게 있습니다. while(fund<target_money).fund가 target의 값을 갖는데 까지 얼마나 걸리는지 구하는 건데 왜 fund가 target보다 작을 때라고 while안에 넣나요? 그럼 정확히 fund와 target이 일치할 때의 시간을 구하는 게 아니지 않나요?

c

답변 1

3

안소

while(🔥)

while문의 🔥 부분은 while문을 도는 반복 조건이 됩니다. 🔥 이 부분에 들어갈 조건식이 참이여야지만 while문을 돌게 돕니다. 이 조건식이 거짓이면 while문을 돌지 않습니다.

fund가 target_money 값을 갖는데까지 얼마나 걸리는지를 구하는 행위는 fund < target_money (while문 조건 참)인 동안에만 이루어져야 하기 때문입니다. fund >= target_money (while문 조건 거짓)가 되면 목표에 도달한 것이니 더 이상 while문을 돌지 않습니다.

seed_money >= target_money 을 만족하는 데까지 몇 년이 걸리는지 알고 싶은 것이기 때문에 seed_money 초기값을 가지고 출발한 fund가 fund >= target_money 가 될 때까지 fund < target_moeny인 상태 동안에는 계속 해서 fund에 연 이자율을 곱하여 fund 값을 증가시키고 동시에 year를 카운팅 해나가야 합니다. 우리의 목표는 fund를 target_money 에 도달시키는 것이기 때문이에요.

fund < target_money 인 상태라는 것은 아직 target_money 에 도달하지 못했다는 것임으로  fund에 연 이자율을 곱하여 fund 값을 증가시키고 동시에 year를 카운팅하는 행위를 더 해야 합니다. 즉, 아직 fund < target_money 인 상태라는 것은 while문을 더 돌려서 이 작업을 더 해줘야 한다는 의미가 됩니다. 

따라서 이렇게 fund에 연이자율을 곱해서 fund 값을 증가시키고 year을 카운팅 하는 행위는  fund < target_money 조건인 동안에만 이루어져야하기 때문에 while(fund<target_money) 인 것입니다. fund >= target_money 가 되면 목표였던 fund 가 target_money 에 도달하게 된 것이므로 더 이상 while문을 돌지 않고, 즉 더 이상 연이자율 곱하는 행위를 하지 않습니다. 

(+ 덧붙여서 fund == target_money 이렇게 정확히 딱 떨어지게 일치하게 되기는 힘듭니다. fund와 target_money와 연이자율은 double 실수이기 때문입니다. 소수들까지 전부 일치하게 되기는 힘들지요. 그래서 while문 반복 조건을 fund != target_money 로 하신다면 무한 루프에 빠지실 수도 있어요. 따라서 fund >= target_money 이렇게 fund가 목표 금액에 도달하거나 혹은 처음으로 넘을 때가 우리가 목표하는 순간이자 while문을 더 이상 돌지 않아야하는 때입니다.)

완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.

1

51

3

main 함수에서 왜 int만 선언이 되는걸까요

1

55

2

8비트 2진수 변환시 왜 1을 더해야하나요?

1

54

2

혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?

1

48

1

프로토타입과 함수간의 인자 불일치

1

72

2

12.12 헤더 관련 질문

1

59

2

Visual Studio Community 2026 사용 문의

1

136

2

Q. 15:30, 부호가 있는 8비트 정수 질문

1

59

2

getchar(), putchar()

1

92

3

강의자리ㅛ

1

78

2

비주얼스튜디오코드로 공부해도 상관없나요?

1

112

2

소스파일안에 여러 파일

1

75

2

F5와 F7의 차이

1

75

2

c = TWO * (a+b); 에서 a와 b는?

1

58

2

; 세미콜론을 붙이는 기준에 문의

1

68

1

Step over 기능 문의

1

53

2

2.6 강의 따옴표 출력 규칙 문의

1

74

2

int main 함수 관련 오류 문의

1

67

2

13.4 words[0]

0

60

2

11.7 함수를 구현해 봤습니다.

1

62

2

11.6 직접 strcmp와 strncmp를 구현해 보았습니다.

1

64

2

11.6 my_strcat과 my_strncat을 구현해봤습니다.

1

53

2

11.6 fit_str함수를 구현해 봤습니다.

1

53

2

11.5 코드 구현

1

67

2