1. 반복문
1) for문
2) while문
3) do~while문
do {
실행할 문장;
} while(조건식);
2. 오늘 실습코드
1) quiz.c
#include<stdio.h>
void main() {
const char* qMsg = "Q.다음 중 프로그래밍 언어가 아닌 것은?\n";
const char* choiceMsg = "1. JAVA\n2. 파이썬\n3. C언어\n4. 망둥어\n";
int choice = 0, answer = 4;
//0 이외 모든 수는 참
while (-9999){
printf("%s%s", qMsg, choiceMsg);
scanf_s("%d", &choice);
if (choice == answer) {
printf("정답!\n");
break;
}
else if (choice >= 1 && choice <= 4) {
printf("오답ㅠㅠ\n");
}
else {
printf("다시 시도해주세요\n");
}
}
}
2) doWhileTest.c
#include<stdio.h>
void main() {
int choice = 0;
const char* msg = "1.요금조회\n2.분실신고\n0.상담원 연결\n";
do{
printf("%s", msg);
scanf_s("%d", &choice);
}while (choice != 0);
/*
//초기값이 0이라서 단 한 번도 실행이 안됨
//이때 do~while문을 사용, 무조건 한 번은 실행하고 검사함
while (choice != 0) {
printf("%s", msg);
scanf_s("%d", &choice);
}
*/
}
3) 영화관 만들기(megabox.c)
** 영화관 만들기 기획
** 완성된 코드가 아님, 다음 수업시간에 완성할 예정 **
#include<stdio.h>
void main() {
//메가 박스
const char* title = "★MEGA BOX★";
const char* menu = "①예매하기\n②구매하기\n③쿠폰등록\n④나가기\n";
const char* book_menu = "①겨울왕국2(09:00)\n②포드v페라리(13:00)\n③[청소년 관람 불가]남산의 부장들(23:00)\n④홈 화면으로\n";
const char* food_menu = "①팝콘(₩7000)\n②콜라(₩3000)\n③[청소년 구매 불가]맥주(₩4000)\n④홈 화면으로\n";
const char* errMsg = "다시 시도해주세요.";
const char* name = "";
int choice = 0;
int money = 100000000;
int t_price = 12000;
int p_price = 7000;
int c_price = 3000;
int b_price = 4000;
int age = 0;
int price = 0;
while (1) {
printf("%s\n%s", title, menu);
scanf_s("%d", &choice);
//데드코드를 해결하기 위해
//여기에서 if문을 사용하여 break;로 빠져나감
if (choice == 4) { break; }
switch (choice){
//예매하기 영역
case 1:
//변수의 재사용
//1. 메모리 효율성 증가
//2. 가독성이 떨어진다.
printf("%s", book_menu);
scanf_s("%d", &choice);
//Nested switch
switch (choice) {
//겨울왕국2(09:00)
case 1:
name = "겨울왕국2(09:00) 예매";
break;
//포드v페라리(13:00)
case 2:
name = "포드v페라리(13:00) 예매";
break;
//남산의 부장들(23:00)
case 3:
//나이 입력 후 19세 미만이면 실패처리
printf("[청소년 관람 불가 영화입니다]\n나이 : ");
scanf_s("%d", &age);
name = "남산의 부장들(23:00) 예매";
if (age < 20) {
printf("%s 실패 / 미성년자\n", name);
continue;
}
break;
//홈 화면으로 이동
case 4:
continue;
//그 외 영역
default:
printf("%s\n", errMsg);
continue;
}
price = t_price;
break;
//구매하기 영역
case 2:
printf("%s", food_menu);
scanf_s("%d", &choice);
switch (choice) {
//팝콘(₩7000)
case 1:
name = "팝콘 구매";
price = p_price;
break;
//콜라(₩3000)
case 2:
name = "콜라 구매";
price = c_price;
break;
//맥주(₩4000)
case 3:
printf("[청소년 구매 불가 음식입니다]\n나이 : ");
scanf_s("%d", &age);
name = "맥주 구매";
if (age < 20) {
printf("%s 실패 / 미성년자\n", name);
continue;
}
price = b_price;
break;
//홈 화면으로 이동
case 4:
continue;
//그 외 영역
default:
printf("%s\n", errMsg);
continue;
}
break;
//쿠폰등록 영역
case 3:
break;
/*
case 4:
//데드코드
//while문을 빠져나갈 수 없음
//해결책 : if문을 이용하여 while문을 탈출하기
break; break;
*/
//그 외 영역
default:
printf("%s\n", errMsg);
continue;
}
//잔액부족 검사
if (money - price < 0) {
printf("%s 실패 / 잔액 부족\n", name);
}
else {
money -= price;
printf("%s 성공 / 현재 잔액 : %d원\n", name, money);
}
}
}
'웹_프론트_백엔드 > 단과' 카테고리의 다른 글
[단과_C] 2020.02.21 (0) | 2020.02.22 |
---|---|
[단과_JAVA] 2020.02.21 (0) | 2020.02.22 |
[단과_JAVA] 2020.02.20 (0) | 2020.02.20 |
[단과_C] 2020.02.19 (0) | 2020.02.19 |
[단과_JAVA] 2020.02.19 (0) | 2020.02.19 |