구구단 7단이군요..
a=0인부분과 a<9 가 이해가 안되신다구요..
구현하고자 하는 것은 7x1, 7x2, .... 이런 식이니까..
a=1부터 할 수도 있습니다. 왜냐면.. 프로그램 만드는 사람 마음이니까요..
대신 0이나 1이냐의 차이로 a++, 즉 a를 증가시키는 것이 계산식을 쓰기전이냐
쓰고난 후이냐의 차이로 갈라지죠..
같은 이유로 a<9 일수도 있고, a<10일 수도 있습니다.
while 루프가 돌아가는 것을 천천히 살펴보시면 생각해 보시면 압~니다.
1부터 하는걸로 해볼까요?
int a=1, b=7;
while(a<10)
printf("%d x %d = %d\n", b, a, b*a++); // 1부터 시작했으니 계산하고 나서 증가면 되겠죠?
a를 1부터 해서 9까지 쓸려면 위와 같이 2줄로 하면 되겠죠..
처음 a는 1입니다. while에서 비교해보고 참이니까 루프에 들어갑니다.
b는 7이 출력, a는 1이 출력되고 결과가 b*a 인 7이 출력되고 a++ a를 사용하고 증가되므로
이때 a는 2가 됩니다. 다시 while비교, 역시 a가 10보다 작죠. 또 출력합니다. 증가...
이제 a는 3이 됩니다. ....이런식으로 계속 돌다가 a가 9인 경우 출력하고 a증가 이제 10이 됩니다.
while에서 비교하겠지요.. 이번엔 a<10가 아니므로 루프를 종료하고 나오게 됩니다.
이크 쓰다보니.. 너무 설명이 길었나 봅니다.
아무튼 어떻게 되는 건지 이해가 되셨나요?...
즐거운 공부가 되시길 바랍니다..
이정도 님이 쓰신 글 :
: 7단을 책에서 약간 참고하면서 혼자 짜봤는데...
: 이해가 안되는게 있네요
:
: #include <stdio.h>
:
: main()
: {
: int a = 0, b=7, c; // 여기 a = 0 이랑
: while( a < 9) // a < 9 이 부분이 이해가 안돼요...
: {
: a++;
: c = b * a;
: printf("\n%d * %d = %d", b, a, c);
: }
: }
:
: 변수 a는 왜 0으로 설정해야 되며
: while에서 a < 9 으로 해야될까요? =_=
:
: 단순히 보면 0~8 까지인데 실행해보면 1~9까지 나오네요....
|