1 00:00:00,000 --> 00:00:03,272 지난번에 이어서, 동전던지기 게임을 만들어볼게요 2 00:00:03,272 --> 00:00:06,517 지난 시간에, 0과 1 사이의 임의의 숫자를 만들고 3 00:00:06,517 --> 00:00:08,787 반올림 해서 정수로 만들었어요 4 00:00:08,787 --> 00:00:11,954 그렇게 하면 0 또는 1을 얻을 수 있죠 5 00:00:11,954 --> 00:00:18,598 그리고 이 동전을 동그라미로 그리고 나오는 숫자에 따라 보라색이나 노란색으로 표시되도록 했지요 6 00:00:18,598 --> 00:00:20,627 그 코드가 여기 있네요 7 00:00:20,627 --> 00:00:23,507 정수가 0이면 보라색으로 8 00:00:23,507 --> 00:00:25,687 그렇지 않으면 노란색으로 색칠하네요 9 00:00:25,687 --> 00:00:27,587 동전을 여기에 그렸죠 10 00:00:27,587 --> 00:00:32,455 이제 3개의 면을 가진 동전을 생각해봐요 11 00:00:32,455 --> 00:00:33,990 3번째 면을 추가해봅시다 12 00:00:33,990 --> 00:00:37,109 숫자를 0부터 2까지 만들어볼거에요 13 00:00:37,109 --> 00:00:41,693 그리고 반올림하면 정수는 0, 1, 2 라는 값을 가질 수 있어요 14 00:00:41,693 --> 00:00:45,729 그런데 지금의 코드를 살펴보면 2가지 경우만 고려하고 있어요 15 00:00:45,729 --> 00:00:48,815 정수가 0이면 보라색 그렇지 않으면 노란색이죠 16 00:00:48,815 --> 00:00:51,885 이제 0이 아닌 경우는 1 또는 2가 되겠네요 17 00:00:51,885 --> 00:00:54,931 이전에 했던 걸 똑같이 적용해볼까요? 18 00:00:54,931 --> 00:00:57,443 else 블럭 안에, if-else를 다시 써 넣는거에요 19 00:00:57,443 --> 00:01:05,743 정수가 1이면 노란색으로 칠해요 20 00:01:05,743 --> 00:01:11,153 그렇지 않으면 빨간색으로 칠해요 21 00:01:11,153 --> 00:01:15,478 0이면 보라색 22 00:01:15,478 --> 00:01:18,984 그렇지 않고 1이면 노란색 23 00:01:18,984 --> 00:01:24,491 0도 아니고 1도 아닌 경우는 2이죠 그러면 빨간색을 칠해요 24 00:01:24,491 --> 00:01:28,566 버튼을 여러번 눌러볼게요 작동하네요! 25 00:01:28,566 --> 00:01:30,956 동전의 면을 더 추가하고 싶네요 26 00:01:30,956 --> 00:01:33,773 숫자를 0부터 3까지 만들고 27 00:01:33,773 --> 00:01:37,090 else 블럭 안에 if-else를 또 추가 하면 되겠죠 28 00:01:37,090 --> 00:01:40,158 그렇게 else로 감싸진 코드가 수없이 만들어 지게 됩니다 29 00:01:40,158 --> 00:01:44,704 아... 정말 좋지 않은 코드네요. 보기 안좋아요! 30 00:01:44,704 --> 00:01:48,881 코드는 읽기 쉽고 간결해야 합니다 못생기면 안되요 31 00:01:48,881 --> 00:01:50,600 그래서 무언가를 해볼거에요 32 00:01:50,600 --> 00:01:57,843 만약 우리가 else 블록 안에 하나의 if 문 혹은 하나의 if-else문만 있고 그 밖에는 아무것도 없다면 33 00:01:57,843 --> 00:02:04,486 즉, stroke 함수나 또 다른 if-else 구문이 없다면 34 00:02:04,486 --> 00:02:08,444 우리는 하나의 if 문 혹은 거기에 하나의 else 블록이 붙어 있을 수는 있어요 35 00:02:08,444 --> 00:02:13,156 그렇다면, 이 if 구문과 바로 앞줄을 합칠 수 있어요 그리고 이렇게 됩니다 36 00:02:13,156 --> 00:02:17,073 else if (integer ===1) 그러면 색깔을 노란색으로 채웁니다 37 00:02:17,073 --> 00:02:21,939 마지막 else는 다른것과 연결되지 않고 그냥 제일 마지막에 와서 붙습니다 38 00:02:21,939 --> 00:02:27,067 좋습니다! 결국, 이 코드는 정수가 0이면 보라색 39 00:02:27,067 --> 00:02:30,235 그렇지 않고 1이면 노란색 40 00:02:30,235 --> 00:02:34,484 그렇지 않으면 (즉, 이들 두가지가 다 false이면) 빨간색을 칠하는 겁니다 41 00:02:34,484 --> 00:02:37,738 restart 를 여러번 눌렀는데, 잘 작동하는거 보이죠? 42 00:02:37,738 --> 00:02:41,824 좋습니다! 이것의 장점은 우리가 원하는 만큼 else-if룰 추가해서 사용할 수 있다는 겁니다 43 00:02:41,824 --> 00:02:44,703 동전의 면을 쉽게 늘릴 수 있겠죠 44 00:02:44,703 --> 00:02:48,009 한번 해봅시다. 숫자를 0~3까지 만들고 45 00:02:48,009 --> 00:02:56,188 else 블럭을 하나 더 추가했어요 else if (integer === 2) 46 00:02:56,188 --> 00:02:59,658 이 경우에는 빨간색을 칠해요 47 00:02:59,658 --> 00:03:02,658 마지막 else 블럭은 정수가 3인 경우입니다 48 00:03:02,658 --> 00:03:08,969 이 경우에는 파란색을 칠해볼께요. 좋습니다! 49 00:03:08,969 --> 00:03:12,816 이렇게 하려면, 제일 먼저 if 문으로부터 시작하고 50 00:03:12,816 --> 00:03:16,570 그 다음에 원하는 만큼의 else-if 가 추가 되고요 51 00:03:16,570 --> 00:03:18,698 제일 마지막 것은 옵션입니다 52 00:03:18,698 --> 00:03:21,900 하지만 else가 없으면, 앞의 모든 경우가 거짓인 경우에 53 00:03:21,900 --> 00:03:23,722 아무것도 실행하지 않겠죠 54 00:03:23,722 --> 00:03:26,883 하지만 이 코드에는 else가 있으니까 55 00:03:26,883 --> 00:03:30,354 이 경우에는 해당 코드블럭이 실행되겠죠 56 00:03:30,354 --> 00:03:37,017 이 경우는 if, else-if, else 를 사용하지 않고 57 00:03:37,017 --> 00:03:45,509 if 만을 사용해도 됩니다 58 00:03:45,509 --> 00:03:50,728 왜냐하면 정수는 0, 1, 2, 3 일수밖에 없으니까요 59 00:03:50,728 --> 00:03:54,223 모든 경우의 수가 겹치는 게 없어요 상호 배타적입니다 60 00:03:54,223 --> 00:03:56,609 이 코드 블럭들 중에서 하나만 실행됩니다 61 00:03:56,609 --> 00:03:59,218 하지만 항상 그런 경우들만 있는 것은 아닙니다 62 00:03:59,218 --> 00:04:02,356 숫자를 반올림 해서 정수로 만들지 않으면 어떻게 될까요? 63 00:04:02,356 --> 00:04:05,455 예를 들어 숫자를 반올림 해서 정수로 만드는 것 없이 하면 어떻게 될까요? 64 00:04:05,455 --> 00:04:07,600 다른 부분은 화면을 그리는 코드입니다 65 00:04:07,600 --> 00:04:09,284 새로운 규칙을 만들어볼게요 66 00:04:09,284 --> 00:04:12,637 여전히 숫자는 0부터 3까지 만들거에요 67 00:04:12,637 --> 00:04:15,315 그리고 여기 숫자 선 위에 마크를 해볼께요 68 00:04:15,315 --> 00:04:26,028 그 숫자가 0과 1사이의 값이면 보라색을 칠할거에요 69 00:04:26,028 --> 00:04:30,504 1부터 2까지는 노란색 70 00:04:30,504 --> 00:04:35,533 2부터 3까지는 빨간색을 칠할거에요 71 00:04:35,533 --> 00:04:38,651 이것을 if와 else-if 구문으로 어떻게 표현할 수 있을까요? 72 00:04:38,651 --> 00:04:43,542 숫자가 1보다 작은 경우는 73 00:04:43,542 --> 00:04:50,796 이 경우는 0 과 3 사이에 있죠 74 00:04:50,796 --> 00:04:55,746 이 경우는 보라색을 칠하고 75 00:04:55,746 --> 00:05:06,122 그렇지 않고 2보다 작으면 노란색으로 76 00:05:06,122 --> 00:05:13,943 그렇지 않으면 빨간색으로 칠할거에요 77 00:05:13,943 --> 00:05:16,076 원하는 대로 작동하죠? 78 00:05:16,076 --> 00:05:19,307 1보다 작으면 이 범위에 있구요 79 00:05:19,307 --> 00:05:23,603 그렇지 않고, 1과 같거나 크고 2보다 작으면 80 00:05:23,603 --> 00:05:26,462 이 범위에 있죠. 노란색을 칠할거에요 81 00:05:26,462 --> 00:05:31,900 그렇지 않으면, 2보다 큰 크거나 같은 경우입니다 이 범위에 해당하죠 82 00:05:31,900 --> 00:05:36,277 이렇게 바꾸면 ( else if 에서 else를 삭제하면 ) 숫자가 2보다 작은 경우라고 하면 안됩니다 83 00:05:36,277 --> 00:05:39,650 숫자가 3보다 작은 경우라고 해서도 안되죠 84 00:05:39,650 --> 00:05:42,932 숫자가 1보다 작은 경우는 2보다 작은 경우에 포함되니까요 85 00:05:42,932 --> 00:05:44,896 물론 3보다 작은 경우에도 포함되죠 86 00:05:44,896 --> 00:05:48,331 그러니 동전은 항상 빨간색으로 표시되겠죠 87 00:05:48,331 --> 00:05:52,361 이 경우에는 else-if 를 쓰는게 편리하겠죠