switch 문법 설명 및 활용 예제
switch 문은 특정 값에 따라 다양한 행동을 수행하고 싶을 때 유용합니다. 여러 개의 if / else 문을 사용할 수 있지만, 선택지가 두 개 또는 세 개 이상일 경우 switch 문을 사용하는 것이 더 간단합니다.
문법
switch 문의 기본 문법은 다음과 같습니다:
switch (<expression>) {
case <constant1>:
<code>
break;
case <constant2>:
<code>
break;
// 더 많은 케이스
default:
<code>
}
설명
- 먼저,
<expression>이 실행됩니다. - 그 결과는 각
case문 뒤에 있는 상수와 비교됩니다. - 만약 일치하는 상수가 있을 경우, 해당
case가 실행되고break문을 만나면switch문이 종료됩니다. - 일치하는
case가 없으면default문이 실행됩니다.default문이 없어도 해당 값이 없을 때 아무 작업도 하지 않을 수 있습니다. switch문 내에서break문을 사용하지 않으면, 다음case로 계속 실행하게 되어 예상치 못한 결과를 초래할 수 있습니다.
사용 예제
기본 예제
플레이어의 생명 상태에 따라 다른 스프라이트를 그리기:
switch (player_lives) {
case 3:
draw_sprite(20, 20, spr_face_healthy);
break;
case 2:
draw_sprite(20, 20, spr_face_hurt);
break;
case 1:
draw_sprite(20, 20, spr_face_fatal);
break;
default:
draw_sprite(20, 20, spr_face_fainted);
break;
}
여러 케이스 처리
여러 키 입력을 동시에 처리하는 예제:
switch (keyboard_key) {
case vk_left:
case ord("A"):
x -= 4;
break;
case vk_right:
case ord("D"):
x += 4;
break;
case vk_up:
case ord("W"):
y -= 4;
break;
case vk_down:
case ord("S"):
y += 4;
break;
}
응용 예제
아래의 예제는 직업에 따라 캐릭터의 행동을 지정하는 경우입니다:
switch (character_class) {
case "Warrior":
attack_damage = 10;
defense_level = 5;
break;
case "Mage":
attack_damage = 8;
defense_level = 2;
break;
case "Rogue":
attack_damage = 6;
defense_level = 3;
break;
default:
attack_damage = 0;
defense_level = 0;
break;
}
성과 평가 기준 예제
플레이어의 점수에 따라 등급을 매기는 예제:
switch (player_score) {
case 100:
grade = "A";
break;
case 90:
grade = "B";
break;
case 80:
grade = "C";
break;
default:
grade = "F";
break;
}
요약
switch 문을 사용하면 특정 값에 따라 코드 실행을 간단하게 처리할 수 있습니다. 여러 개의 케이스를 설정하고, 같은 코드 블록에 여러 조건을 넣어 효율적으로 코드를 작성 할 수 있습니다. break 문을 적절히 사용하여 예기치 않은 행동을 방지하도록 해야 합니다.