6. 따라 나누기 (값에 따라 갈래 나누기)
한 값이 무엇인지에 따라 여러 갈래로 깔끔하게 나눠요.
이 장에서 배울 것
- 한 값에 따라 갈래를 나누기 (
~에 따라 나누자:)- 여러 값을 한 갈래로 묶기,
나머지는:- 아래 갈래로 이어가기 (
다음으로 이어가자)만약과 언제 다르게 쓰는지
언제 쓰나요?
5장의 만약으로 갈래를 여러 개 만들 수 있었어요. 그런데 한 이름표가 어떤 값인지만 보고 나누는 경우라면 같은 비교를 계속 써야 해서 길어져요.
'요일'을 "토요일"로 정하자
만약 ('요일'이 "토요일"과 같다) 라면:
"주말!"을 출력하자
그렇지 않고 만약 ('요일'이 "일요일"과 같다) 라면:
"주말!"을 출력하자
그렇지 않다면:
"평일"을 출력하자
이럴 때 ~에 따라 나누자를 쓰면 훨씬 짧고 읽기 쉬워요.
'요일'을 "토요일"로 정하자
'요일'에 따라 나누자:
"토요일", "일요일" 인 경우:
"주말!"을 출력하자
나머지는:
"평일"을 출력하자
기본 모양
'회원등급'을 "일반"으로 정하자
'회원등급'에 따라 나누자:
"VIP" 인 경우:
"환영합니다, 귀빈 여러분!"을 출력하자
"일반" 인 경우:
"방문해 주셔서 감사합니다."를 출력하자
나머지는:
"회원 가입을 부탁드려요."를 출력하자
'회원등급'에 따라 나누자:— 무엇을 보고 나눌지 정해요."VIP" 인 경우:— 그 값이"VIP"와 같으면 아래 묶음을 실행해요.나머지는:— 어느 경우에도 맞지 않으면 실행해요. (없어도 돼요.)
들여쓰기가 두 단계라는 점을 눈여겨보세요. 인 경우:는 한 단계, 그 안의 할 일은 두 단계 들여 써요.
숫자로도 나눌 수 있어요.
'번호'를 2로 정하자
'번호'에 따라 나누자:
1 인 경우:
"1번 메뉴: 시작하기"를 출력하자
2 인 경우:
"2번 메뉴: 설정"을 출력하자
나머지는:
"없는 메뉴예요."를 출력하자
여러 값을 한 갈래로
쉼표로 값을 나열하면 그중 하나와 같을 때 실행돼요.
'보석'을 "실버"로 정하자
'보석'에 따라 나누자:
"골드", "실버" 인 경우:
"귀금속이에요."를 출력하자
나머지는:
"일반 광물이에요."를 출력하자
맞는 경우가 없으면
어느 경우에도 맞지 않는데 나머지는:도 없으면 아무 일도 일어나지 않고 다음 줄로 넘어가요. 오류는 아니에요.
'요일'을 "수요일"로 정하자
'요일'에 따라 나누자:
"월요일" 인 경우:
"한 주의 시작!"을 출력하자
"금요일" 인 경우:
"곧 주말이에요!"를 출력하자
"끝!"을 출력하자
끝!만 나와요. 예상하지 못한 값이 들어왔을 때 알고 싶다면 나머지는:을 꼭 적어 두세요.
아래 갈래로 이어가기: 다음으로 이어가자
보통은 맞는 갈래 하나만 실행하고 끝나요. 갈래 끝에 다음으로 이어가자를 쓰면 바로 아래 갈래도 이어서 실행해요. 높은 등급이 낮은 등급의 혜택까지 모두 받는 경우에 편해요.
'회원등급'을 "VIP"로 정하자
'회원등급'에 따라 나누자:
"VIP" 인 경우:
"전설의 검을 받았어요."를 출력하자
다음으로 이어가자
"골드" 인 경우:
"마법 물약을 받았어요."를 출력하자
다음으로 이어가자
나머지는:
"초보자 붕대를 받았어요."를 출력하자
VIP는 세 가지를 모두 받고, 골드는 아래 두 가지를, 그 밖의 회원은 붕대만 받아요. '회원등급'을 바꿔 가며 실행해 보세요.
만약과 따라 나누기, 언제 무엇을?
| 이럴 때는 | 이것을 |
|---|---|
| 한 값이 무엇과 같은지로 나눌 때 | 따라 나누기 |
| 크다·작다 같은 범위로 나눌 때 (점수 90 이상 등) | 만약 |
여러 이름표를 함께 볼 때 (그리고, 또는) |
만약 |
따라 나누기는 “같은지”만 검사해요. “90 이상” 같은 범위는 만약으로 쓰세요.
자주 하는 실수
1. 글자와 숫자를 섞기
"1"(글자)과 1(숫자)은 다른 값이라 서로 맞지 않아요. 입력받은 값으로 나눌 때 특히 조심하세요. 2장처럼 [숫자]로 입력받자로 받거나, 경우를 글자로 쓰세요.
'선택'을 "1"로 정하자
'선택'에 따라 나누자:
1 인 경우:
"숫자 1과 맞았어요."를 출력하자
나머지는:
"글자 \"1\"은 숫자 1과 달라요."를 출력하자
2. 들여쓰기 단계 헷갈리기
인 경우:와 나머지는:은 따라 나누자:보다 한 단계 안쪽, 할 일은 거기서 한 단계 더 안쪽이에요.
정리
| 하고 싶은 일 | 쓰는 법 |
|---|---|
| 값에 따라 나누기 | '값'에 따라 나누자: |
| 한 경우 | "값" 인 경우: |
| 여러 값 한꺼번에 | "가", "나" 인 경우: |
| 그 밖의 모든 경우 | 나머지는: |
| 아래 갈래도 실행 | 다음으로 이어가자 |
연습 문제
1. 계절("봄", "여름", "가을", "겨울")에 따라 어울리는 과일을 출력해 보세요. 그 밖의 값이면 “그런 계절은 없어요.“를 출력하세요.
정답 예시
'계절'을 "여름"으로 정하자
'계절'에 따라 나누자:
"봄" 인 경우:
"딸기"를 출력하자
"여름" 인 경우:
"수박"을 출력하자
"가을" 인 경우:
"사과"를 출력하자
"겨울" 인 경우:
"귤"을 출력하자
나머지는:
"그런 계절은 없어요."를 출력하자
2. 달(1~12)을 보고 며칠까지 있는지 출력해 보세요. (2월은 28일, 4·6·9·11월은 30일, 나머지는 31일)
정답 예시
'달'을 4로 정하자
'달'에 따라 나누자:
2 인 경우:
"28일까지"를 출력하자
4, 6, 9, 11 인 경우:
"30일까지"를 출력하자
나머지는:
"31일까지"를 출력하자
3. 점수가 90 이상이면 “A”, 80 이상이면 “B”를 출력하려고 해요. 따라 나누기와 만약 중 무엇이 알맞을까요?
정답 보기
만약이에요. 따라 나누기는 값이 같은지만 검사하므로 “90 이상” 같은 범위는 표현할 수 없어요. 5장의 연습 문제처럼 만약 … 그렇지 않고 만약 …으로 쓰세요.
다음 장에서는 값을 여러 개 묶어서 다루는 목록과 사전을 배워요.