#include <stdio.h>
void main() {
int age;
printf("나이를 입력하세요 : ");
scanf_s("%d", &age);
if (age >= 20) {
// 조건이 true 일때 실행할 영역
printf("환영합니다. 문나이트 입니다.\n");
printf("메인 스테이지로 이동하세요.\n");
int num; // if 문 실행시에만 생성되는 변수
printf("몇명이십니까?");
scanf_s("%d", &num);
printf("%d 명 좌석으로 안내하겠습니다.\n", num);
}
printf("\n 프로그램 종료");
}
#include <stdio.h>
void main() {
int age;
printf("나이를 입력하세요 : ");
scanf_s("%d", &age);
if (age >= 20) {
// 조건이 true 일때 실행할 영역
printf("환영합니다. 문나이트 입니다.\n");
printf("메인 스테이지로 이동하세요.\n");
int num; // if 문 실행시에만 생성되는 변수
printf("몇명이십니까?");
scanf_s("%d", &num);
printf("%d 명 좌석으로 안내하겠습니다.\n", num);
}
else {
// 조건이 false 일 때 실행할 영역
printf("꺼져!\n");
printf("조금 더 나이먹고 오세요.\n");
}
printf("\n 프로그램 종료");
}
#include <stdio.h>
void main() {
int age;
printf("나이를 입력하세요 : ");
scanf_s("%d", &age);
if (age >= 20) {
// 조건이 true 일때 실행할 영역
if (age >= 40) {
// 중첩 if 문
printf("아~~ 죄송합니다 자리가 없네요~~ \n");
}
else {
printf("환영합니다. 문나이트 입니다.\n");
printf("메인 스테이지로 이동하세요.\n");
int num; // if 문 실행시에만 생성되는 변수
printf("몇명이십니까?");
scanf_s("%d", &num);
printf("%d 명 좌석으로 안내하겠습니다.\n", num);
}
}
else {
// 조건이 false 일 때 실행할 영역
printf("꺼져!\n");
printf("조금 더 나이먹고 오세요.\n");
}
printf("\n 프로그램 종료");
}
#include <stdio.h>
void main() {
printf("점수를 입력하면 학점을 계산해주는 프로그램\n\n");
int score;
printf("점수입력 : ");
scanf_s("%d", &score);
if (score >= 90 && score <= 100) printf("A 학점입니다\n");
else if (score >= 80) printf("B 학점입니다\n");
else if (score >= 70) printf("C 학점입니다\n");
else if (score >= 60) printf("D 학점입니다\n");
else if (score >= 50) printf("F 학점입니다\n");
else printf("점수를 잘못 입력했습니다.\n");
printf("\n 프로그램 종료");
}
switch(변수 이름) {
case 변수값 :
실행문;
}
강아지 돌보기 프로그램을 짜보자!
#include <stdio.h>
void main() {
printf("원하는 메뉴를 입력하세요\n");
printf("1. 밥주기\n");
printf("2. 산책하기\n");
printf("3. 목욕하기\n");
printf("메뉴번호 입력 : ");
int menu;
scanf_s("%d", &menu);
switch (menu) {
case 1:
printf("와구와구\n");
case 2:
printf("신난다\n");
case 3:
printf("아우씨 씻기싫어\n");
}
printf("\n 프로그램 종료");
}
입력
1
출력
와구와구
신난다
아우씨 씻기싫어
switch 문의 경우, 결과 값에서도 볼 수 있듯, 차례대로 실행됨을 알 수 있다. 하지만 우리가 원하는것은, 2번을 선택했을때, 신난다만 출력하는것이다. 여기서 필요한것이 break 키워드 이다.
-중략
switch (menu) {
case 1:
printf("와구와구\n");
break;
case 2:
printf("신난다\n");
break;
case 3:
printf("아우씨 씻기싫어\n");
break;
}
입력
1
출력
와구와구
break 키워드를 사용하여, menu 의 값이 1일때의 상황만 출력해주었다. 그런데, 1일때 뿐 아니라 사용자가 만약 5라는 값을 넣거나 1,2,3 이외의 어떤값을 넣었을 때는 어떻게 될까?
-중략
switch (menu) {
case 1:
printf("와구와구\n");
break;
case 2:
printf("신난다\n");
break;
case 3:
printf("아우씨 씻기싫어\n");
break;
default:
printf("잘못된 번호 입니다.\n");
}
입력
5
출력
잘못된 번호 입니다.
include <stdio.h>
void main() {
int level = 1; // 변수의 초기값
while (level < 10) // 제어 조건
{
printf("훈련실시 .. 레벨 1 증가\n");
level++; // 제어변수 연산
}
printf("\n 프로그램 종료");
}
반복문에 대해서 알기 위해 다음 3가지를 먼저 기억하자.
- 제어변수의 초기화
- 제어 조건
- 제어변수의 연산
반복문에는 반복횟수를 지정해주는건 따로 없다. 그렇기 때문에 위의 조건들을 조작하여 횟수를 지정해주어야 한다는 점을 기억하자.
#include <stdio.h>
void main() {
int i = 0;
while (1) {
i++;
printf("%d", i);
}
}
while문의 조건에 들어가는 내용이 항상 참 이라면, while 문은 끝나지 않고 항상 반복이 될것이다. 그렇기 때문에 조건에 1을 넣어준다면, while 문을 무한대로 실행시킬 수 있다.
#include <stdio.h>
void main() {
int i = 0;
do {
printf("%d\n", i);
i++;
} while (i < 10 && i != 0);
}
위 코드가 do 안쪽 코드가 먼저 한번 실행됨을 보여주는 예제이다.
#include <stdio.h>
void main() {
int index;
for (index = 0; index < 10; index++) {
printf("%d\n", index);
}
}
#include <stdio.h>
void main() {
int index;
for (index = 0; 1 ; index++) {
printf("%d\n", index);
}
}
추가적으로, 1이 대신에 제어 조건 부분을 비워두게 되도 같은 의미를 가진다. 마찬가지로, 제어변수 초기화, 제어변수 연산에 관해서도 비워둘 수 있다.
#include <stdio.h>
void main() {
int index;
for (index = 0; ; index++) {
printf("%d\n", index);
}
}
#include <stdio.h>
void main() {
for (int i = 1; i <= 5; i++) {
for (int j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}
}
위와 같이 for 문을 중첩해서 사용할 수도 있다.
다음 그림을 살펴보자.
break 는 반복을 종료하고 반복문 다음 문장을 실행하게 된다. 즉, 반복조건이 어찌됐던간에 break 를 만나면 그 반복문은 종료가 된다. 반면에 continue 의 경우, 반복문에 조건부분으로 돌아가게 된다. 다만, 기존에 값들은 그대로 유지가 된 채로 반복이 되기 때문에 주의해야 한다.
또한 break 와 continue 의 경우 루프 내에서만 사용이 가능하다는 점 꼭 알아두자!