저번 시간에 두 시간동안 for문을 배웠습니다
이번시간에는 반복문중 for문을 배웠으니
나머지 두 반복문 while문과 do-while문을 배워볼건데요!
여기서 가장 중요한점!
while문은 실수로 무한루프를 돌게하는 경우가 매우 많습니다!
while문을 쓰실때 꼭!!!! 주의 하고 많은 생각을 한 후 사용하시길 바랍니다!
while문의 사용법을 한번 볼까요?
while(조건)
{
}
매우 간단하죠!
while문은 조건이 참이면 무조건 반복합니다!
그래서 while문이 무한 반복이 돌게하지않으려면
while문 안에서 break를 걸어주거나
while문의 조건을 거짓으로 만들어주는 조건이 필요합니다!
예를 들자면
int i = 0;
while(i < 100)
{
i++;
}
이렇게말이죠! i는 0이므로
while문에 조건이 참이고 코드가 수행되겠죠?
그럼 i가 1이되고 다시한번 조건을 검사하고 참이므로
i에 1을 더해 2가되겠죠? 다시 조건검사하고 이를 반복하다보면
i가 100이 되겠죠?
그럼 while문에 조건이 i가 100보다 작을때지만 i가 100이므로 거짓이되고
while문이 종료됩니다
자 그럼 while문을 이용해 문제를 풀어봅시다!
문제 |
저는 지금 13이라는 숫자를 입력하면 "성공입니다!"라고 출력하는 프로그램을 짜고싶습니다! 입력한 숫자가 13이 아니라면 "오류! 다시입력해주세요!" 라는 문구를 출력하고 다시 입력을 받는것을 반복하도록 해주세요! (while문을 사용할것.) |
자 이 문제 한번 풀어보세요!
정답은 글의 맨 끝에 적어놓을테니 꼭 풀어본 이후에 정답체크해주세요~
자 이번엔 do-while문을 사용해보겠습니다
do-while문은 이렇게 사용합니다!
do
{
코드
}while(조건);
do-while문과 while문은 거의 똑같습니다만!
다른점이 하나 있습니다
while문은 시작하기에 앞써 조건을 검사하고 조건이 참이면
수행을 하지만! do-while문은 무조건 코드를 한번 수행 하고
조건이 참인지 검사하고, 참이면 다시한번 코드를 수행하고를 반복합니다
쉽게말해 예제를 설명해보자면
int i = 0;
while(i < 10)
{
i++;
}
이 코드는 와일문이 시작할때
i가 뭐지? 아, 0이네? 그럼 10보다 작으니까 코드 수행!
그럼 i가 1이됐네? 그래도 10보다 작으니까 코드 수행!
이걸 i가 10이 될때까지 반복합니다.
int i = 0;
do
{
i++;
}while(i < 10);
이렇게하면 두와일문이 시작할때
일단 한번 코드 수행해!
이제 i가 뭐야! 1이네? 그럼 10보다 작으니까 다시 코드수행!
그럼 i가 2가됐네? 그래도 10보다 작으니까 다시 코드수행!
이걸 i가 10이 될때까지 반복하는겁니다.
이해 되셨나요?
do-while문은 while문과 다르게 while뒤에 세미콜론이 붙으니 잊지말고 써주세요!
두와일문은 거의 쓰는일이 없긴하지만 알아주세요~
자 오늘 강좌는 여기까지입니다.
그럼 위에서 냈던 문제의 정답을 알아보아야겠죠??
정답
#pragma warning(disable:4996)
#include <stdio.h>
int main()
{
while (1)
{
int input;
printf("숫자를 입력해주세요!\n:");
scanf("%d", &input);
if (input == 13)
{
break;
}
printf("오류! 다시한번 입력해주세요!\n");
}
printf("성공입니다!");
}
정답 설명
while문에 조건을 1을 주었습니다. 무조건 참이라는것이죠
그리고 while문에서 scanf로 사용자 입력을 받습니다.
if문으로 사용자입력값이 13인지 확인하고 맞으면 break로 탈출해서
성공입니다! 라는 말을 출력하고
13이 아니라면 오류!다시한번 입력해주세요!하는것을 반복하게 합니다!
자 이번 while문도 많이쓰는 문법이니 꼭 완벽하게 이해하고 넘어가주시길 바랄게요!
수고하셨습니다!
'C' 카테고리의 다른 글
([C언어] 11강) 2차원 배열 (0) | 2019.06.27 |
---|---|
([C언어] 10강) 배열 (0) | 2019.06.26 |
([C언어] 8강) 다중 for문 (2) | 2019.06.26 |
([C언어] 7강) for문과 continue (0) | 2019.06.26 |
([C언어] 6강) switch문과 break (0) | 2019.06.25 |