오늘은 루프에 관하여 썰을 풀도록 하겠습니다. 언제나 막장다운강좌입니다... 아....
언제쯤 나는 강좌를 재미있고 이해하기쉽게 올릴수있을까요... ㅠ_ㅠ

------------------------------------- 절취선 -----------------------------------------------
 자.. 이제 반복문이란것을 배워보자... 루프라고도 하고 (영어로는 loop)이걸 왜 써먹는가에 대해서
조금 이야기를 해보고싶어지는구나 이것을 쓰는 이유는 다름이 아니라.. 반복되는 삽질을 간단하게 줄이기위하여 사용하는것이라 생각하면 된다~ 라고 말하고싶어
 주구장창 썰만 풀지않고.,.. 예를들어서 보자...
내가... 안녕하세요 라는 글자를 100번 출력하고싶어.. 어떻게 하면 될까?

printf("안녕하세요\n");
printf("안녕하세요\n");
printf("안녕하세요\n");
printf("안녕하세요\n");
printf("안녕하세요\n");
 .....
printf("안녕하세요\n");
printf("안녕하세요\n"); //100개째

이렇게 짜면 되겠지? 이말에 수긍하는 당신.... 컵라면과함께 야근하라~ -_-;
저 얼마나 아름다운 삽질이니... 반복문이라는 같은일을 계속적으로 처리해주는 구문이 있고만..
저런식으로 코드를 짜는 경우는 없지? 다들 반복문을 쓰지... 다음처럼말이야

for( i = 1 ; i <= 100 ; i++){
    printf("안녕하세요");
}


얼마나 간결하고 좋니.. 저걸 실행하고나면 안녕하세요~ 라고 100번을 말해줘... 깔끔하잖아? ㅋㅋㅋ
반복문이 하는일... 같은작업을 여러번할때... 써먹으라고 ㅋㅋㅋㅋ 좋잖아?
 자... 이제 어떻게 써먹는지 보는 시간~ 우선 while문부터 보자..

while(조건){
     시키고싶은일 (반복적으로 시킬..)
}


이렇게 쓰면 된다.
while문 안의 내용이 실행되려고 한다면... while안의 조건을 충족시켜야해.. 저 조건이 참이면
계속 시키고싶은일에 써놓은 일을 하는거야. 만약 프로그램이 계~~~속 같은일 반복하게하고싶다면...
while(1){...} 이라고 쓰면 되겠지? (참고로 이경우 탈출조건을 주지않으면 계속 같은일한다-_-)
그리고 do-while문이 있어... do - while문은... 사용법이

 do{
    할일
 }while(조건);


이렇게 쓰여.. 자.. 저것도 역시 while문처럼 조건에만 맞으면 무조건 할일을 해... 조건에 어긋날때까지
그러면 while문과의 차이는 무엇일까?
그 둘의 차이점은... while은 조건이 안맞으면 바로 루프를 빠져나가. 하지만 do - while은 한번 실행해보고나서 조건에 어긋나면 루프를 빠져나가 (반복을 안한다는말이야) while은 조건이 틀리면 아예 실행 자체를 안해.. 그러나 do-while은 최소한 한번은 실행이 된다는거... 루프를 실행할지 말지를 루프시작전에 조건검사를 하는가.. 아님 한번실행한 후에 루프를 빠져나갈지 실행할지 결정하는가. 그 위치의 차이가있어..
반복문의 마지막.. for문을 보자.. 아까 위에 썼던것처럼... 사용법은...

for( 초기값 ; 실행조건 ; 변화할값 ){
    할일
}


이렇게 쓰여.. 말이 좀 애매모호한데... 초기값이라는 부분은 for문에서 무언가 값을 지정해줄일이 있을떄..
아까의 경우 처럼 for( i = 1 ; i <= 100 ; i++)에서.. i라는 값을 for문에서 1로 처음에 설정을 해줬지?
그런역할이야. for문의 가운데의 실행조건은... while이나 do-while처럼...  루프를 실행할것인가 말것인가가
결정되어지는 조건인 것이고... 변화할값은... 루프를 한번 돌때마다 변화해야할 값을 적어둔거야.
어떻게 변화할지.. 아까같은경우는 1~100까지니까 1씩 계속 증가시키면서 카운트를 한거지.
그리고 for문의 경우 초기값과 변화할값 필드를 비워둘수도 있어.
for( ; (c=getchar())!=EOF ; ){
}
이런식으로 말이야
기본적인 구문은 여기까지로 줄이도록 하고...
for문으로 쓸거 while이나 do-while로도 쓸수있어.
그 반대도 또한 가능하고
이런거 말하면 좀 그렇지만... 음... 뭐랄까... 생각의 자유를 뺏을수도있어...
하지만... 그냥 참고삼아 말해둘께....
while, do-while같은경우는 반복을 하는데 카운트할 필요가 없는거 반복할때..
(가령 입력을 계속 받다가 종료할때)
for문은 카운트를 해야하는 (가령 100번이면 100번 1000번이면 1000번.. 이렇게 반복문 범위가 정해져있을떄)
반복문에서 쓰면 유용하다.

 오늘의 키포인트.
 같은일 반복할거면 일일이 쓰지말고 반복문을 쓰자... (즉.. 삽질하지말자)
 루프에서 가장 중요한것은 루프의 실행조건이다 (잘못하면 무한루프에 빠진다.)
Posted by 모니터에습기찼어



Google