C - 중첩된 IF 문
안녕하세요, 미래의 프로그래머 여러분! 오늘 우리는 C 언어의 중첩된 IF 문의 fascinaiting 세계로 창을 열어보겠습니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 이 주제를 안내해 드리게 되어 기쁩니다. 믿어 주세요, 한 번 익혀보면 프로 birder builder처럼 IF 문을 중첩할 수 있을 거예요!
중첩된 IF 문이란?
deep end로 뛰어들기 전에, 기본 개념부터 시작해보겠습니다. 여러분은 인생에서 종종 여러 조건에 따라 결정을 내리는 경험을 가지고 계시죠? 중첩된 IF 문은 그와 정확히 같습니다! 여러 조건을 확인하고, 그 조건에 따라 다른 코드 블록을 실행할 수 있게 해줍니다.
예를 들어, 입을 것을 고를 때 여러분은 다음과 같이 생각할 수 있습니다:
- 만약 밖이 추운 경우...
- 만약 비가 오는 경우...
- 비 coat를 입는다
- 그렇지 않으면...
- 따뜻한 점퍼를 입는다
- 그렇지 않으면 (추운 것이 아닌 경우)...
- 만약 맑은 경우...
- 티셔츠를 입는다
- 그렇지 않으면...
- 가벼운 점퍼를 입는다
이와 같은 결정 과정이 프로그래밍에서 중첩된 IF 문이 하는 일입니다!
문법
이제 C에서 중첩된 IF 문을 어떻게 작성하는지 살펴보겠습니다. 기본 구조는 다음과 같습니다:
if (condition1) {
// condition1이 참인 경우 실행할 코드
if (condition2) {
// condition1과 condition2가 모두 참인 경우 실행할 코드
}
else {
// condition1이 참이지만 condition2가 거짓인 경우 실행할 코드
}
}
else {
// condition1이 거짓인 경우 실행할 코드
if (condition3) {
// condition1이 거짓이지만 condition3이 참인 경우 실행할 코드
}
else {
// condition1과 condition3이 모두 거짓인 경우 실행할 코드
}
}
처음에는 이 구조가 약간 두려울 수 있지만, 예제를 통해 설명해드리겠습니다!
예제 1: 온도와 습도
간단한 예제부터 시작해보겠습니다. 우리는 온도와 습도에 따라 입을 옷을 추천하는 프로그램을 작성해보겠습니다.
#include <stdio.h>
int main() {
int temperature = 25;
int humidity = 80;
if (temperature > 30) {
if (humidity > 70) {
printf("It's hot and humid. Wear light, breathable clothes.\n");
} else {
printf("It's hot but dry. Wear light clothes and stay hydrated.\n");
}
} else if (temperature > 20) {
if (humidity > 70) {
printf("It's warm and humid. A t-shirt should be fine.\n");
} else {
printf("It's pleasant outside. Enjoy the weather!\n");
}
} else {
printf("It's cool. Consider wearing a light jacket.\n");
}
return 0;
}
이 예제에서 우리는 먼저 온도를 확인합니다. 만약 30°C 이상이면 습도를 확인하여 "hot and humid" 또는 "hot and dry" 조건을 결정합니다. 온도가 20°C에서 30°C 사이이면 다시 습도를 확인하여 더 구체적인 조언을 드립니다. 그리고 20°C 이하이면 가벼운 점퍼를 입는 것을 추천합니다.
예제 2: 성적 계산기
이제 약간 더 복잡한 예제로 넘어가보겠습니다. 우리는 성적을 판단하고 플러스나 마이너스를 추가하는 성적 계산기를 만들어보겠습니다.
#include <stdio.h>
int main() {
int score = 85;
if (score >= 90) {
if (score >= 97) {
printf("A+\n");
} else if (score >= 93) {
printf("A\n");
} else {
printf("A-\n");
}
} else if (score >= 80) {
if (score >= 87) {
printf("B+\n");
} else if (score >= 83) {
printf("B\n");
} else {
printf("B-\n");
}
} else if (score >= 70) {
if (score >= 77) {
printf("C+\n");
} else if (score >= 73) {
printf("C\n");
} else {
printf("C-\n");
}
} else if (score >= 60) {
if (score >= 67) {
printf("D+\n");
} else if (score >= 63) {
printf("D\n");
} else {
printf("D-\n");
}
} else {
printf("F\n");
}
return 0;
}
이 프로그램은 먼저 일반 성적 범위(A, B, C, D, 또는 F)를 결정한 다음, 중첩된 IF 문을 사용하여 적절한 플러스나 마이너스를 추가합니다. 마치 러시아 nesting doll의 성적입니다!
예제 3: 간단한 어드벤처 게임
이제 약간의 fun을 위해 중첩된 IF 문을 사용한 간단한 텍스트 기반 어드벤처 게임을 만들어보겠습니다.
#include <stdio.h>
int main() {
char direction;
printf("You're at a crossroad. Do you go left (L) or right (R)? ");
scanf(" %c", &direction);
if (direction == 'L' || direction == 'l') {
printf("You've chosen to go left.\n");
printf("You see a river. Do you swim across (S) or look for a bridge (B)? ");
scanf(" %c", &direction);
if (direction == 'S' || direction == 's') {
printf("You swim across and find a treasure chest. You win!\n");
} else if (direction == 'B' || direction == 'b') {
printf("You find a bridge, cross safely, but find no treasure. Game over.\n");
} else {
printf("Invalid choice. The river sweeps you away. Game over.\n");
}
} else if (direction == 'R' || direction == 'r') {
printf("You've chosen to go right.\n");
printf("You encounter a dragon. Do you fight (F) or run (R)? ");
scanf(" %c", &direction);
if (direction == 'F' || direction == 'f') {
printf("You bravely fight the dragon and win! You're a hero!\n");
} else if (direction == 'R' || direction == 'r') {
printf("You run away safely, but without glory. Game over.\n");
} else {
printf("Invalid choice. The dragon eats you. Game over.\n");
}
} else {
printf("Invalid choice. You stand still and nothing happens. Game over.\n");
}
return 0;
}
이 게임은 중첩된 IF 문을 사용하여 플레이어의 선택에 따라 다른 경로를 만듭니다. 이는 중첩된 IF 문이 어떻게 결정 트리를 만들 수 있는지 간단히 보여줍니다.
예제 4: 로그인 시스템
마지막 예제로, 사용자 이름과 비밀번호를 확인하는 기본 로그인 시스템을 만들어보겠습니다.
#include <stdio.h>
#include <string.h>
int main() {
char username[20];
char password[20];
printf("Enter username: ");
scanf("%s", username);
if (strcmp(username, "admin") == 0) {
printf("Enter password: ");
scanf("%s", password);
if (strcmp(password, "secretpassword") == 0) {
printf("Login successful. Welcome, admin!\n");
} else {
printf("Incorrect password. Access denied.\n");
}
} else if (strcmp(username, "user") == 0) {
printf("Enter password: ");
scanf("%s", password);
if (strcmp(password, "userpass") == 0) {
printf("Login successful. Welcome, user!\n");
} else {
printf("Incorrect password. Access denied.\n");
}
} else {
printf("Username not found. Access denied.\n");
}
return 0;
}
이 예제에서 우리는 먼저 사용자 이름을 확인합니다. 만약 "admin" 또는 "user"라면, 해당 비밀번호를 확인합니다. 이는 중첩된 IF 문을 사용하여 다단계 인증 시스템을 구현하는 예입니다.
결론
중첩된 IF 문은 여러분의 프로그래밍 도구箱에서 강력한 도구입니다. 그들은 복잡한 결정 구조를 만들고, 여러 조건을 쉽게 처리할 수 있게 해줍니다. 하지만 너무 깊이 중첩하지 않도록 주의하세요, 그렇지 않으면 코드가 읽기 어려워지고 유지보수가 어려워질 수 있습니다. 프로그래밍에서 명확성과 간결성이 핵심입니다!
이 튜토리얼이 중첩된 IF 문을 더 잘 이해하는 데 도움이 되길 바랍니다. 계속 연습하면 곧 프로처럼 IF 문을 중첩할 수 있을 거예요! 행복한 코딩, 미래의 프로그래머 여러분!
Credits: Image by storyset