프론트엔드 개발/JavaScript

JS) if/else, function 3,6,9게임 연습문제

Ella Seon 2022. 10. 7. 00:38

출처 : 코딩애플 JavaScript 입문과 웹 UI개발

 

 

1) 3,6,9 게임 해보자~

 

3의 배수에서 박수를 치면 되는게임을 만들어보자.

어떤식이냐면, 3의 배수일 경우 console.log('박수') 가 나오고, 아닐경우에는 console.log('통과') 를 만들어보자. 

 

function 삼육구게임(){}

 

 

먼저, 문제를 풀기전에 한글로 틀을 짜야한다!! 초보일때는 한글 함수명과 한글 변수명을 쓰는게 좋다!

 

  function 삼육구게임(입력된 숫자){
    if(입력된 숫자가 3의 배수라면){
    console.log('박수');
    }else{ 그게 아니라면
    console.log('통과');
    }}

 

위에 코드블럭처럼 한글로 먼저 구조를 그려본다.

~한 경우, ~ 면 이니까 if문이 들어가야한다.  if(true)가 나올경우 {}를 실행하고 false 가 나오면 else{} 를 실행한다.

그러면 나머지는... 3의배수를 어떻게 알지??

우리는 % 나머지를 구하는 연산자를 알고있다.

3/3을 하면 몫은 1이고 나머지는 0이다.

즉, 3의 배수는 3으로 나눴을 때 나머지가 0이 나오는걸 구해야한다.

 

✅정답

  function 삼육구게임(입력된숫자){
    if(입력된숫자%3===0){
    console.log('박수');
    }else{
    console.log('통과');
    }}

  console.log(삼육구게임(3));
  console.log(삼육구게임(4));
  console.log(삼육구게임(12));

함수를 만들었으면 함수는 불러줘야해(실행해줘야해~)

 

실행하려면

함수명(argument);를 입력하면 된다.

 

즉 위에서는 삼육구게임(3); 이라고 실행을 했다. 

3이라는 argument는 입력된 숫자라는 parameter로 들어가서 실행이 된다.

 

 

2) 3의 배수는 박수 1번, 9의 배수는 박수 2번, 나머지는 그냥 통과를 만드려면?

 

기존에 만들어진거를 살펴보자

이거를 어떻게 변형할 수 있을까?

 

  function 삼육구게임(입력된숫자){
    if(입력된숫자%3===0){
    console.log('박수');
    }else{
    console.log('통과');
    }}

  console.log(삼육구게임(3));
  console.log(삼육구게임(4));
  console.log(삼육구게임(12));

9의 배수라면 역시 입력된숫자%9===0 가 나와야지

그런데 위치를 어떻게 할까?

 

입력된숫자%3===0 을 먼저 넣고 else if 문을 써서 입력된숫자%9===0 을쓴다면??

NO NO!!!

9는 3의 배수라서 3과 9가 겹치게 돼.

3과 9가 겹치면, if문은 true인걸 먼저 반환하고 다음 else if문은 실행되지 않기 때문에

9의 배수가 먼저나와야해 

 

  function 삼육구게임(입력된숫자){
    if(입력된숫자%9===0){
    console.log('박수박수');
    }else if(입력된숫자%3===0){
    console.log('박수')
    }else{
    console.log('통과');
    }}

  console.log(삼육구게임(3));
  console.log(삼육구게임(9));
  console.log(삼육구게임(18));
  console.log(삼육구게임(13));