씨랭아이티

반응형

녕하세요! 리듬입니다.


저번글에서 반복문 for문을 알아봤었죠.


반복문이 또 있다고 했었습니다. 바로 while문이죠!


바로 배워봅시다~


먼저 기본문법을 먼저 보자면..!



while(조건){


반복실행문


증감식


}


위와 같은 형식입니다.


while바로 옆에 조건을 써주고, 조건에 맞으면 반복해서 실행해줍니다.


그리고 조건에 맞지 않으면 while문에서 나가게 되구요.


증감식은 while문 안에 쓰기도하고 안쓰기도 합니다.


초기화해줄 변수는 while문 위에서 초기화해줘야 합니다.


이건 for문에서도 마찬가지에요.


반복문 안에서 초기화해주면 초기화도 반복이 됩니다..!


일단 예를 먼저 봅시다!






증가시킬 i는 위에서 선언과 동시에 0으로 초기화시켜줬구요.


while 옆에 조건은 'i가 100보다 작거나 같다' 라고 되어있죠?


그러니까 i는 100까지만 증가가 될거에요.


그렇게 반복이 되면서 sum에 sum+i가 들어가게 됩니다!


이거는 for문이랑 같아서 이해가 쉬우실거에요.


그러면 위에서 말한것처럼  반복문안에서 sum을 0으로 초기화시켜볼게요.


어떻게 나올거 같나요?






100이 나옵니다.


반복이 되는동안 계속 0으로 초기화를 해주기때문에 더해도 더해도


반복이 0으로 시작하는거에요.


그래서 마지막으로 더한값인 100이 나오게 된거죵!


이건 for문에서도 마찬가지입니다!


저 조건을 이용해서 무한루프에 빠지게 할 수도 있겠죠?


for문에서도 그랬던 것처럼요!


조건에 만족만 하면 계속 반복하게 되잖아요. while문 옆에 조건에


참, 그러니까 true값이 들어가게 되면 조건에 맞게돼요.


거짓이 들어가면 조건에 맞지않게 되구요.


저희가 배운 내용이죠? 0 이외의 숫자는 참이다. 라고 배웠습니다.


기억하시죠!? 그런데 보통 1을 넣어줍니다. 2나 3 다른숫자도 돼요.


예를 봅시다!








위를 보시면 조건에 1이 들어가있지요!


그래서 printf랑 scanf가 계속해서 출력이 되고 있습니다.


만약 어떤 값을 입력받았을 때 while문에 빠져나가고 싶다!


싶을땐 조건을 이용해주면 됩니다.


만약 1004을 입력받으면 반복문이 끝나게 만들고 싶으면


a!=1004 이렇게 해주면 됩니다. != 다들 기억하시죠?


다르다는 뜻입니다. ==의 반대구요.


조건에 맞으면 반복이니까 1003을 입력하면 조건에 맞게 되죠?


반대로 1004를 입력하면 조건에 맞지 않게 됩니다. 같아지니까요~


다음으로 넘어가볼게요!!! 바로 do while문인데요.


while문이랑 비슷해요. 먼저 기본문법부터 보겠습니다.



do{


반복실행문


}while(조건);


이렇게 됩니다.


일단 while문이랑 다른점은 while이 뒤로갔다는거겠죠? 이건 뭐..


가장 크게 다른점을 알려드릴게요.


do while문은 맨처음 반복문이 실행될때 일단은 한번


실행합니다. 조건을 안보구요!


그러니까 for문이나 while문은 만약 조건이 안맞으면


실행이 되지않고 넘어가게 되잖아요?


그런데 do while문은 일단 한번은 실행을 하고 봅니다. 무식한 놈이에요.


예를 보여드릴게요.




위는 while문이구요, 밑에는 do while문이에요.


조건은 같은데 결과가 다르죠?


do while문은 일단 한번은 실행하고 봅니다!


그리고 do while문은 조건문 뒤에 세미콜론이 와요. ; 이거요!


여기까지 반복문 while문과 do while문에 대해 알아보았습니다.


이번 글은 여기서 마치구요!


다음 글에서 뵙겠습니다 여러분~


수고하셨습니다!


:)





반응형

'C언어' 카테고리의 다른 글

016.C언어 2차원배열!?  (0) 2017.03.07
015.C언어 배열!?  (0) 2017.02.23
013.C언어 반복문(for문)  (0) 2017.02.15
012.C언어 조건연산자?누구냐 넌..  (0) 2017.02.09
011.C언어 조건문에는 무엇이 있나?(switch)  (0) 2017.02.08