신호등 왕국
옛날 옛적에, 신호등 왕국에는 세 명의 주요 주민들이 살고 있었어요: 빨간 신호등 레나, 노란 신호등 노아, 그리고 초록 신호등 그린이었죠. 각 주민은 왕국에서 중요한 역할을 맡고 있었어요.
레나는 왕국의 안전을 책임졌어요. 그녀가 빛을 내면 모든 주민들은 멈추고, 잠시 쉬어가며 안전을 확인했어요. 노아는 준비의 중요성을 알렸어요. 그의 황금빛 빛이 비추면, 주민들은 마음의 준비를 하며 다음 행동을 준비했죠. 마지막으로, 그린이는 자유와 평화의 상징이었어요. 그의 초록빛이 퍼지면, 모든 주민들은 자유롭게 움직이며 왕국을 활기차게 만들었죠.
어느 날, 왕국에 새로운 주민이 찾아왔어요. 그는 신호등의 색깔을 알지 못하는 외지인이었어요. 그가 신호등 왕국에 도착했을 때, 레나의 붉은 빛이 비쳤어요. 외지인은 놀라서 멈췄고, 신호등 왕국의 주민들은 외지인에게 다가가 설명해줬어요.
“이곳에서는 각 신호등의 빛에 따라 행동을 달리해요,” 레나가 말했어요. “내 빛이 붉을 때는 멈추고 안전을 확인해야 해요.” 노아는 덧붙였어요, “내 빛이 노랗게 빛날 때는 준비의 시간을 가져야 해요. 준비는 언제나 중요하거든요.” 마지막으로, 그린이는 미소 지으며 말했어요, “내 초록빛이 비칠 때는 자유롭게 움직일 수 있어요. 이제 당신도 함께 우리와 이 왕국을 활기차게 만들어 주세요!”
외지인은 고개를 끄덕이며 신호등 왕국의 규칙을 배우게 되었어요. 이제 신호등 왕국은 더 안전하고 활기차게 변했답니다. 모두가 서로의 역할을 존중하고 이해하면서 왕국은 평화롭고 행복하게 계속 살아갔어요.
여기서 신호등 왕국의 주민들이 각기 다른 색상의 신호등에 따라 행동을 결정하는 이야기를 switch ~ case 문으로 코딩을 해 보겠습니다.
C언어
#include <stdio.h>
int main() {
int signal;
printf("신호등의 색상을 입력하세요 (1: 빨강, 2: 노랑, 3: 초록): ");
scanf("%d", &signal);
switch (signal) {
case 1:
printf("신호등이 빨간색입니다. 잠시 멈춰주세요!\n");
break;
case 2:
printf("신호등이 노란색입니다. 준비하세요!\n");
break;
case 3:
printf("신호등이 초록색입니다. 안전하게 출발하세요!\n");
break;
default:
printf("잘못된 신호입니다. 다시 시도해 주세요.\n");
break;
}
return 0;
}
switch ~ case 문은 하나의 변수 값에 따라 여러 가지 다른 실행 경로를 선택 할 수 있는 제어 구조 입니다.
위의 예에서 signal 값이 1 이라면 case 1을 만나게 되고 2라면 case 2를 만나게 되는 구조입니다.
default는 어떤 case에도 해당되지 않는 경우에 실행 되는 코드블록입니다.
if ~ else if 문을 사용해도 되지만 switch ~ case 문은 가독성이 높기 때문에 코드를 이해하는데 더욱 유리합니다.
C++
#include <iostream>
int main() {
int signal;
std::cout << "신호등의 색상을 입력하세요 (1: 빨강, 2: 노랑, 3: 초록): ";
std::cin >> signal;
switch (signal) {
case 1:
std::cout << "신호등이 빨간색입니다. 잠시 멈춰주세요!\n";
break;
case 2:
std::cout << "신호등이 노란색입니다. 준비하세요!\n";
break;
case 3:
std::cout << "신호등이 초록색입니다. 안전하게 출발하세요!\n";
break;
default:
std::cout << "잘못된 신호입니다. 다시 시도해 주세요.\n";
break;
}
return 0;
}
C언어와 동일합니다.
JAVA
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int signal;
System.out.println("신호등의 색상을 입력하세요 (1: 빨강, 2: 노랑, 3: 초록): ");
signal = scanner.nextInt();
switch (signal) {
case 1:
System.out.println("신호등이 빨간색입니다. 잠시 멈춰주세요!");
break;
case 2:
System.out.println("신호등이 노란색입니다. 준비하세요!");
break;
case 3:
System.out.println("신호등이 초록색입니다. 안전하게 출발하세요!");
break;
default:
System.out.println("잘못된 신호입니다. 다시 시도해 주세요.");
break;
}
scanner.close();
}
}
C언어와 동일합니다.
Python
signal = int(input("신호등의 색상을 입력하세요 (1: 빨강, 2: 노랑, 3: 초록): "))
if signal == 1:
print("신호등이 빨간색입니다. 잠시 멈춰주세요!")
elif signal == 2:
print("신호등이 노란색입니다. 준비하세요!")
elif signal == 3:
print("신호등이 초록색입니다. 안전하게 출발하세요!")
else:
print("잘못된 신호입니다. 다시 시도해 주세요.")
파이썬은 별도로 switch ~ case 문이 존재하지 않습니다.
코드에서 처리 한 것 처럼 if ~ elif 문으로도 충분히 가독성이 좋기 때문입니다.
'프로그래밍언어문법(C,C++,Python,JAVA)' 카테고리의 다른 글
4.3 마법의 점수 (7) | 2024.10.02 |
---|---|
4.2 코디와 마법의 성문 (6) | 2024.09.04 |
4.2 마법의 성적표 (5) | 2024.07.17 |
4.1 용과 마을의 보물 (4) | 2024.07.02 |
3.5 토끼와 거북이의 미로 탈출 (5) | 2024.06.20 |