질문이 깁니다. 난해하고요.질문도 4개나 됩니다.
=========================================================
안녕하세요 프로그램 게시판 여러분.
저는 얼마전부터 제 필요로 인하여 씨언어를 공부하고 있습니다.(정말 조금씩)
책을 보면서 실습하던 도중에 for문과 while문을 사용하여서 실습을 하던 도중
전혀 이해가 안되는 부분이 있어서 조언을 부탁드리고 싶습니다.
구구단을 만든 소스입니다.
#include <stdio.h>
int main()
{
int a=1,b;
printf("\n=========================================\n");
printf("\n 0 1 2 3 4 5 6 7 8 9\n");
printf("\n");
while(a<10)
{
for(b=1;b<10;b++)
①{
printf("%4d",a*b);
{
② for(b=1;b<10;b++)
{
printf("%4d",a*b);
}
}
printf("\n");
① }
a++;
printf("\n");
}
getchar();
return 0;
}
간단히 식은 빼고 답만 나오게 하였습니다.(반나절 좀 더 걸렸던거 같습니다.)
그런데 ①범 대괄호를 지우면 출력값이 판이하게 달라집니다.
왜 이리 변하는지 궁금합니다.
대괄호가 있고 없고에 따라 저리 변할 수 있는지요.
두번째는
②번의 b를 c로 변수를 하나 더 늘리면(b를 같이 쓰면 헷갈리 수 있다고 판단되어 하나 더 정의 하였습니다.)
아무리 생각해도 이게 왜 이리 달라지는지 이해가 가질 않아서 질문을 드립니다.
그리고
while문에서 while() 로 써도 식이 가능할까요?
무한루프가 되는건가요?
혹시 f(;;)요게 뭔지 아시는분 계실려나요?
질문이 많습니다.
혹시 대답해 주시는 분 계시면 감사드리겠습니다.
출처 |
공부하다가 머리에서 이해가 안되어서 여쭈어 봅니다. |