else문은 '그 밖의'라는 의미를 가지고 있다.
else문을 추가함으로써 이것만의 선택이 아니라 저것도 선택 가능하다.
if (수행조건) {
수행 조건 만족 시 수행
}
else {
수행 조건 불만족 시 수행
}
이것 아니면 저것의 양자 택일 형태이다.
#include<stdio.h>
int main(void) {
int a = 0;
printf("정수를 입력하세요: ");
scanf_s("%d", &a);
if (a > 5) {
printf("입력값은 5보다 큽니다.\n");
}
else {
printf("입력값은 5보다 크지 않습니다\n");
}
return 0;
}
출력결과
(3 입력 시)
정수를 입력하세요: 3
입력값은 5보다 크지 않습니다.
(6 입력 시)
정수를 입력하세요: 6
입력값은 5보다 큽니다.
#include<stdio.h>
int main(void) {
int a = 0;
printf("정수를 입력하세요: ");
scanf_s("%d", &a);
if (a % 2 == 0) {
printf("입력한 수는 짝수입니다.\n");
}
else {
printf("입력한 수는 홀수입니다.\n");
}
return 0;
}
출력결과
(4 입력 시)
정수를 입력하세요: 4
입력한 수는 짝수입니다.
(3 입력 시)
정수를 입력하세요: 3
입력한 수는 홀수입니다.
#include<stdio.h>
int main(void) {
int a = 0;
int b = 0;
printf("두 개의 정수를 입력하세요: ");
scanf_s("%d%d", &a, &b);
if (a > b) {
printf("큰 수는 : %d\n", a);
}
else {
printf("큰 수는 : %d\n", b);
}
return 0;
}
출력결과
(120, 60 입력 시)
두 개의 정수를 입력하세요: 120 60
큰 수는 : 120
#include<stdio.h>
int main(void) {
int a = 0;
int b = 0;
int c = 0;
printf("세 개의 정수를 입력하세요: ");
scanf_s("%d%d%d", &a, &b, &c);
if (a < b && a < c) {
printf("최소값은 : %d\n", a);
}
if (b < a && b < c) {
printf("최소값은 : %d\n", b);
}
if (c < a && c < b) {
printf("최소값은 : %d\n", c);
}
return 0;
}
출력결과
(1, 2, 3 입력 시)
세 개의 정수를 입력하세요: 1 2 3
최소값은 : 1
인생을 살면서 선택에 있어 양자택일만 있는 것이 아니다.
else if문을 사용하면 조건 자체가 계속 늘어날 수 있다.
if (수행 조건 1) {
수행 조건1 만족 시 수행
}
else if (수행 조건 2) {
수행 조건2 만족 시 수행
}
else {
수행 조건1, 수행조건2 불만족 시 수행
}
#include<stdio.h>
int main(void) {
int a;
printf("정수를 입력하세요: ");
scanf_s("%d", &a);
if (a > 5) {
printf("입력 값은 5보다 큽니다.\n");
}
else if (a < 5) {
printf("입력 값은 5보다 작습니다.\n");
}
else {
printf("입력 값은 5와 같습니다.\n");
}
return 0;
}
출력결과
(5 입력 시)
정수를 입력하세요: 5
입력 값은 5와 같습니다.
#include<stdio.h>
int main(void) {
int a = 0;
printf("점수를 입력하세요: ");
scanf_s("%d", &a);
if (a >= 60) {
printf("합격입니다.\n");
}
else {
printf("불합격입니다.\n");
}
return 0;
}
출력결과
(60 입력 시)
점수를 입력하세요: 60
합격입니다.
#include<stdio.h>
int main(void) {
int a = 0;
printf("점수를 입력하세요: ");
scanf_s("%d", &a);
if (a >= 60 && a <= 100) {
printf("합격입니다.\n");
if (a >= 90) {
printf("장학대상입니다.\n");
}
}
else if (a < 60 && a >= 0) {
printf("불합격입니다.\n");
}
else {
printf("유효하지 않습니다.\n");
}
return 0;
}
출력결과
(90 입력 시)
점수를 입력하세요: 90
합격입니다.
장학대상입니다.
❗ 명확한 로직을 위해 점수의 범위 정해주기
#include<stdio.h>
int main(void) {
int a = 0;
printf("나이를 입력하세요: ");
scanf_s("%d", &a);
if (1 <= a && a < 13) {
printf("어린이입니다.\n");
}
else if (a >= 13 && a < 19) {
printf("청소년입니다.\n");
}
else if (a >= 19 && a <= 100) {
printf("성인입니다.\n");
}
else {
printf("유효하지 않습니다.");
}
return 0;
}
출력결과
(15 입력 시)
나이를 입력하세요: 15
청소년입니다.
#include<stdio.h>
int main(void) {
char answer = 0;
printf("정말로 이 드라이브를 포멧하시겠습니까? (y/n) ");
scanf_s("%c", &answer);
if (answer == 'y') {
printf("네, 드라이브를 포멧하겠습니다.\n");
}
else if (answer == 'n') {
printf("아니오, 드라이브를 포멧하겠습니다.\n");
}
else {
printf("유효하지 않습니다.");
}
return 0;
}
출력결과
(y 입력 시)
정말로 이 드라이브를 포멧하시겠습니까? (y/n) y
네, 드라이브를 포멧하겠습니다.
#include<stdio.h>
int main(void) {
int score = 0;
printf("점수를 입력하시오 : ");
scanf_s("%d", &score);
if (score >= 91 && score <= 100) {
printf("학점은 A 입니다.");
}
else if (score >= 81 && score <= 90) {
printf("학점은 B 입니다.");
}
else if (score >= 71 && score <= 80) {
printf("학점은 C 입니다.");
}
else if (score >= 61 && score <= 70) {
printf("학점은 D 입니다.");
}
else if (score >= 0 && score <= 60) {
printf("학점은 F 입니다.");
}
else {
printf("유효하지 않습니다.");
}
return 0;
}
출력결과
(88 입력 시)
점수를 입력하시오 : 88
학점은 B 입니다.
if (조건 1) 수행 `;
else if (조건2) 수행2;
else if (조건3) 수행3;
....
else
수행n;
조건이 많아질수록 가독성이 떨어짐 => 유지보수 하기 어렵다.
그래서 switch~case문을 사용한다.
switch (n) {
case 1:
수행1
break;
case 2:
수행2
break;
case 3:
수행3
break;
default:
수행4
break;
}
default (기본값)
if문에서 else에 해당된다.
#include<stdio.h>
int main(void) {
int shortcut;
printf("단축키를 입력하시오: ");
scanf_s("%d", &shortcut);
switch (shortcut)
{
case 1:
printf("딸: 010-2389-XXXX\n");
break;
case 2:
printf("아들: 010-5577-XXXX\n");
break;
case 3:
printf("남편: 010-4561-XXXX\n");
break;
default:
printf("해당 단축키가 없습니다.\n");
break;
}
return 0;
}
#include<stdio.h>
int main(void) {
int month;
printf("1-12월 중에 월을 입력하세요. : ");
scanf_s("%d", &month);
switch (month)
{
case 1: case 2: case 12:
printf("겨울");
break;
case 3: case 4: case 5:
printf("봄");
break;
case 6: case 7: case 8:
printf("여름");
break;
case 9: case 10: case 11:
printf("가을");
break;
default:
printf("해당하는 월이 없습니다.\n");
break;
}
return 0;
}
출력결과
(1 입력 시)
1-12월 중에 월을 입력하세요. : 1
겨울
#include<stdio.h>
int main(void) {
int score = 0;
printf("점수를 입력하세요 : ");
scanf_s("%d", &score);
int grade = (score-1) / 10;
switch (grade)
{
case 9:
printf("학점은 A 입니다.");
break;
case 8:
printf("학점은 B 입니다.");
break;
case 7:
printf("학점은 C 입니다.");
break;
case 6:
printf("학점은 D 입니다.");
break;
case 5: case 4: case 3: case 2: case 1:
printf("학점은 F 입니다.");
break;
default:
printf("유효하지 않습니다.");
break;
}
return 0;
}
0~9가 아닌 1~0의 범위이므로 입력받은 값에 1을 빼서 적용시킨다.
#include<stdio.h>
int main(void) {
int num = 0;
printf("한 개의 정수를 입력하세요 : ");
scanf_s("%d", &num);
num = num % 2;
switch (num)
{
case 0:
printf("짝수입니다.\n");
break;
case 1:
printf("홀수입니다.\n");
break;
default:
printf("유효하지 않는 수입니다.");
break;
}
return 0;
}
while(반복 조건)
{
반복 문장
}
반복 조건을 만족하는 동안 반복 문장을 수행한다.
반복 조건을 만족하지 않으면 while문을 빠져나간다.
#include<stdio.h>
void main() {
int i = 0;
while (i < 5) {
printf("Programming\n");
i++;
}
return;
}
출력결과
Programming
Programming
Programming
Programming
Programming
#include<stdio.h>
void main() {
int i = 0;
while (i < 10) {
printf("*");
i++;
}
return;
}
출력결과 **********
#include<stdio.h>
void main() {
int i = 1;
while (i < 13) {
printf("%d월\n", i);
i++;
}
return;
}
출력결과
1월
2월
3월
4월
5월
6월
7월
8월
9월
10월
11월
12월
#include<stdio.h>
void main() {
int i = 1;
while (i < 10) {
printf("2 * %d = %d\n", i, 2 * i);
i++;
}
return;
}
출력결과
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
2 * 7 = 14
2 * 8 = 16
2 * 9 = 18
디자인
블록
과제
말하는 고양이 음성기능 활용하여 구현해보기
- 디자인