|
안녕하세요? 레조입니다.
답변이 도움이 되었다니 다행입니다.
추가로 말씀드리자면...
1. 일단 수식에서 틀린 부분은 없습니다.
for(t=0; t<3; t++)
a[s][3] += a[s][t] <-- 이부분이 4번째행 합 구하는것도..
해당 t값 for문도 0~2까지 3번 순환하면서 t를 증가하지요.
즉, t=3이 되는 순간이, 3번의 루프를 돌고 4번째 루프에서 t가 3이되므로
t<3의 조건에 맞지않게되어 루프를 탈출하고 다시 상위의 for문을 돌게됩니다.
t는 0,1,2의 회수 즉, 3번 돌게되고 4번째 t가 3이될때 조건이 틀려 탈출하게
됩니다. 물론 a[][]배열은 4x4이므로 a[0~3][0~3]까지 대입이 가능하겠지요.
수식에 a[s][3]처럼 직접 그 값을 고정해 놓으면 3번의 루프결과가 4번째 위치인
3의 위치에 += 되어서 누적되어지는것입니다.
2. 네... 상위 for문으로 돌아갑니다.
하나의 명령문일 경우 보통 for문을 {}블럭으로 묶지않습니다.
하지만 for문의 내용이 2라인 이상이면 {}블럭으로 묶습니다.
여기의 경우는 for문 내부가 for문 블럭이기에 하나로 처리된것입니다.
EX)
for( ; ; )
for( ; ; ) {문장;}
물론 여기서 {문장;}에 문장은 여러개가 가능합니다.
하지만 이렇게 문장이 가능하더라도 가독성을 위해서 상위루프에 {}을 묶어주는게 좋습니다.
for( ; ; )
{
for( ; ; )
{
문장;
}
}
혼란한 틈을타 답변을 하다보니 글이 조금 어수선해졌습니다. ^^;
노란풍선 님이 쓰신 글 :
: 답변 정말 감사 드립니다.
: 궁금하긴 한데 아무리 뒤져봐도 속 시원히 이해할만한 곳이 없어서
: 몇일동안 머리가 띵했었습니다.
: 갑자기 먹구름이 걷히는거처럼 기분까지 상쾌해집니다.
:
: 생초보라서 풀이를 봐도 모르겠더라구여~
:
: 정말 고맙습니다. 일취월장할 날이 혹여 온다면 그땐 받은만큼 돌리겠습니다.
: 다른 생초보에게...
:
: 한가지 질문 더 있습니다.
:
: int a[4][4];
: int s, t;
: for(s=0; s<3; s++)
: for(t=0; t<3; t++)
: a[s][t] = (s*3)+(t+1);
: a[s][3] += a[s][t] <-- 이부분이 4번째행 합 구하는것도.. 어떻게 해서 합이 구해지는지도
: 자아알 알았습니다. 헌데 두번째 for문에서 t값 3을 대입하면
: 수식이 거짓이 되잖아여~ 거짓이면 순환루프를 나와서 첫번째 for문
: 으로 안가고 어캐 이부분으로 와서 합을 구하게 되는거지요??
:
: a[3][t] += a[s][t] <-- 두번째 for문 입력하고 { } 이렇게 묶어주면 묶어준 부분까지
: 실행을 하고 첫번째 for문으로 돌아가는것인가요??
:
: 귀찮으시더라도 꼭 답변 부탁드립니다.
:
|