씨랭아이티

반응형

녕하세요! 리듬입니다. 


이번글에서 배울 내용은요! 반복문인 for문입니다!


for문 말고도 while문도 있는데요. while문은 다음글에서 배우도록 하고,


for문을 먼저 배워봅시다.


기본 문법을 먼저 보면



for(초기값; 조건식; 증감식){

반복실행문

}



런식으로 되어있습니다.


초기값은 몇부터 시작할 건지 초기화시켜주구요.


조건식은 말그대로 조건이에요.앞에서 배운 것처럼 조건에 만족하면 반복해서 실행하고,


만족하지않으면 for문을 종료합니다.


증감식은 반복시 증가인지 감소인지 몇만큼 증가하고 감소할지 써주는거에요.


뭐가 뭔지 모르겠을땐 역시 예를 봐야겠죠?!!







위에 for문을 보시면 i=0 이라고 해줬습니다. i의 초기값을 0으로 하겠다. 이런 뜻이겠죠?


다음은 i<10 이라는 조건문이 나와요. i가 10보다 작다. 작으면 참이 되는겁니다.


i++ 이거는 i가 1씩 증가한다. 라는 뜻이 되겠구요!


출력된 결과를 보시면 '0번째 i입니다' 부터해서 '9번째 i입니다' 까지 출력이 됬습니다.


초기값 0부터 i가 1씩 증가해서 반복이 된거에요.


9번째에서 멈춘이유는 i가 10이 됬을때 조건식에 맞지않기때문에 for문에서 나오게 된거죠.


그러면 for(i=9;i<10;i++) 이렇게 하면 어떻게 나올까요?







초기값이 9로 시작을 하고 조건에 맞아서 한번 출력이 됩니다. 다음 1이 증가하면 10이 되죠??


그럼 조건에 맞지않아서 for문을 나오게 됩니다.


초기값과 조건식,증감식 서로 달라지면 다른 결과가 나오게 돼요.


아래 보시면 증감식이 i--라서 i가 1씩 감소가 되는걸 보실 수 있습니다.







이러한 반복문이 왜 있을까요?


아주 간단한 예를 들어보면 1부터 10까지 더한다고 칩시다. 아주 적은 숫자라서


쉬워보이죠!







위처럼 할 수 있겠죠? 변수를 선언해서 변수안에 더한값을 넣는다던지,


출력문에 바로 연산하는 방법이 있을거에요.


근데 이게 1부터 1000까지 더해야 한다고하면 어떻게 할까요?...


위처럼 쓴다면 1+2+3+4+....99+100+101....+500+...999+1000 !!! 이렇게 써야할거에요.


위같은 고생을 덜기 위해 반복문을 사용합니다.







위처럼 for문을 사용해주면 어마무시하게 길어질 뻔한 코드가 간단해지죠!


위 코드를 보자면,


i의 초기값이 0이구요. 이런 식에선 초기값이 1이여도 상관없겠죠? 0이면 더하나마나니까요.


조건문은 ' i가 1001보다 작다. ' 이기때문에 1000까지 실행이 될겁니다. i가 1001이 되면 조건에 맞지 않게 되니까요!


 다음은  i가 1씩 증가하게 되는거죠.


그래서 i가 0일때 sum=sum+0이 되서 sum에는 0이란 값이 들어있고,


1이 증가해서 조건문을 검사하고, sum=0+1이 되서 sum에는 1이 들어가고


이런식으로 계속 반복이 되는거에요. 조건이 맞지 않을때까지!


for문안에 printf를 넣게되면 출력문도 반복되서 출력됩니다.

 

for문안에 scanf를 넣으면?


밑에 보실게요!







변수들은 옆에 설명이 되어있구요. 처음에 숫자 몇개 입력할 것인지 출력이 되구요.


10이라고 숫자를 입력합니다.


for문을 보시면 조건문에 i<=number라고 되어있습니다. number는 입력할 숫자의 갯수에요.


그래서 i<=10 이 되는거죠. i의 초기값은 1이고 1씩 증가합니다.


반복이 되면서 숫자를 입력하게 되어있죠. 더할 숫자는 num에 입력됩니다.


그래서 반복이 되면서 sum에 더한값들이 들어가고 i가 11이 되면 조건을 만족하지못하기 때문에 for문에서 나옵니다.


for문에서 나오려면 조건을 만족하지 못해야 나오게 되잖아요? 


근데 조건을 계속해서 만족한다면 어떻게 될까요!


계속 실행되겠죠..!






이런 상황입니다. 조건문에는 'i가 a보다 작다' 면 만족하는거에요.


i가 a보다 커야 for문에서 빠져나갈 수 있는건데 i가 계속해서 감소하고 있죠. 그러면 계속 실행되는거죠..!


무한루프에서 빠져나갈 수 있는데 if와 break를 사용하면 됩니다.


if문은 조건문이고, break는 저번 switch문 할때 나왔었죠?


break를 만나면 switch문을 빠져나왔습니다.


이번에도 마찬가지에요! if문을 만족하면 break를 만나서 빠져나오게 되요.







코드가 if문과 break만 추가가 되었습니다. 그 결과 6번 입력하니 종료가 됐죠.


i가 0부터 감소하면서 -5가 되었을 때 if문 조건에 만족해서 break를 만난거에요.


정말정말 간단하죠!





여기까지 해서 반복문인 for문에 대해서 배웠구요!


다음 글은 while문 배워보도록 할게요~!!!!!



수고하셨습니다!


:)





반응형