#include <stdio.h>


int main (void)


{

int total=0;

int num=1;


while(num!=0)

{

printf("정수 입력(0 to quit) : ");

scanf("%d",&num);

total+=num;

}

printf("입력된 정수의 합 : %d n",total);

return 0;

}


여기서 while문은 밑에 

printf("정수 입력(0 to quit) : ");

scanf("%d",&num);

total+=num;

이 세줄을 실행하고나서 num이 0인지 체크하고 0이면 while문을 빠져 나간다.


원래 while문은 저 코드들을 실행하기 전에 조건이 참인지 검사를 하는데, 처음에 num을 1로 초기화했으니 문제없이 실행이 됨.


그리고 왜 total에 일일이 더해주지 않았는데 저장이 되느냐 이렇게 궁금해하는거같은데


결론을 말하자면 넌 일일이 더한게 맞음


저 코드는 while문에서 한번 반복할때마다 scanf로 정수값을 읽어서 total에 더해주는코드인데

니가 입력할때마다 그 입력받은값이 total에 더해진다는 말임


total은 처음에 0이였는데 여기서 num값을 처음에 3으로 입력 받앗다면


total = 0 + 3 이렇게 해서 total에 3이 더해진다.

그리고 total은 여전히 메모리에 있기때문에 그 값을 잃지않고 계속 가지고있다.


코드를 보니까 0을 입력하기 전까지는 정수를 입력할때마다 별다른 표시없이 입력해라는 표시만 뜨는거같은데


3을 입력하고나서 또 입력 요구 뜨면 거기서 5를 입력했다고 하자


그럼 기존의 total에는 3이 저장되어있는데


total= 3 + 5 가 되어 total은 8이 된다.


이게 num으로 0이 입력되기전까진 계속 이런식으로 니가 입력한값이 바로바로 누적되면서 저장되고 있는거다.


그리고 while문을 빠져나가면 while문을 빠져나갈때 마지막으로 total이 가지고있던 값을 그대로 출력 해주는거다.


이 설명을 보고도 이해가 안간다면 그냥 접길 바란다.