목차
1. do-while문
do-while문은 while문과 원리는 비슷하나, 반복 조건이 루프의 끝에 있다는 것이 차이다.
그렇기 때문에
do-while에서는 조건이 거짓이라도적어도 한번은 실행된다.
(while문에서는 조건이 거짓이라면 문장들이 아예 실행되지 않는다.)
do {
문장들;
} while(조건식);
do-while 문은 데이터를 처리하기 전에 사용자로부터 입력 데이터를 받아야 하는 경우에 자주 쓰인다.
사용자로부터 유효한 입력을 받기 전에 적어도 한번은 메뉴를 나타내야 하는 경우이다.
2. 연습문제 -입력 처리하는 예시
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int main(void)
{
int i=0;
do {
printf(" 파일열기-1\n 파일저장하기-2\n 종료-3\n");
scanf("%d", &i);
} while (i < 0 || i>3); //정상적인 값이 아니라면 계속 반복
printf("선택한 메뉴 %d", i);
return 0;
}
3. 연습문제- 컴퓨터와 숫자 맞추기 대결하기
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int user, count;
int computer;
srand(time(NULL));
computer = rand() % 100+1;
count = 0;
user = 0;
// 사용자값과 컴퓨터값이 다른 경우 반복하기
while (user != computer) {
//사용자 입력값 받기
do {
count += 1;
printf(" 1-100 사이의 숫자를 입력하세요 \n");
scanf("%d", &user);
} while (user < 1 || user>100);
printf(" %d번째 선택한 값은 %d입니다.\n", count, user);
//컴퓨터 값과 사용자 값 비교하기
if (user > computer) {
printf("입력한 값이 컴퓨터 값보다 큽니다.\n\n");
}
else if (user < computer) {
printf("입력한 값이 컴퓨터 값보다 작습니다.\n\n");
}
else {
printf("정답입니다.\n\n");
}
}
return 0;
}
4. 연습문제 - 정수의 자리수 구하기
- while 구문을 활용한 예
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int number, check, i;
check = 1;
i = 0;
printf("정수를 입력하세요\n");
scanf("%d", &number);
while (number / check != 0) {
check *= 10;
i += 1;
}
printf("%d 자리수입니다.\n", i);
return 0;
}
-do while 구문을 활용한 예
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
long long num;
int i = 0;
print("정수를 입력하세요\n");
scanf("% lld", &num);
do {
i += 1;
num /= 10; //정수 나눗셈
} while (num != 0);
printf("%d 자리수입니다.\n", i);
return 0;
}
'C언어 > 참고서: C언어 콘서트' 카테고리의 다른 글
C언어 25차시 for문 연습문제 1 (0) | 2023.03.26 |
---|---|
C언어 24차시 for문, 주의점, 연습문제, 중첩 for 반복문 (0) | 2023.03.26 |
C언어 랜덤함수, 난수 만들기, rand(), rand()%, srand(), time(NULL) (0) | 2023.03.25 |
C언어 22차시 반복문 iteration, system함수, 루프제어변수 (0) | 2023.03.25 |
C언어 21차시 조건문 연습문제 4 (0) | 2023.03.24 |