inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문

4강 if문 중첩 줄이기 질문입니다

858

가지지 못한자 가지도 못먹는다

작성한 질문수 1

0

응용으로 쿵쿵따의 중첩 if문을 줄여봤는데 else가 없는데도 중첩 if문인 경우는 어떻게 해야 하나요?

일단 이해한대로 줄여보긴 했는데 잘못된 방법으로 줄인 건지, 정석으로 줄인 건지 궁금합니다!

쿵쿵따 셀프체크랑은 좀 다른 코드입니다!

const number = parseInt(prompt('몇 명이 참가하나요?'), 10);

    if (!number) {
      alert('몇 명이 참가하는지 입력해주세요!');
    }

    if (number) {
      const $input = document.querySelector('input');
      const $button = document.querySelector('button');
      const $word = document.querySelector('#word');
      const $order = document.querySelector('#order');
      let word;
      let newWord;

      const onClickButton = () => {
        if (!word) {
          word = newWord;
          const order = parseInt($order.textContent);
          if (!(2 === word.length || 3 === word.length)) {
            alert('두 글자, 세 글자로 이루어진 단어로만 입력해주세요!');
            word = null;
            $input.value = '';
            $input.focus();
            return;
          }
          if (2 === word.length || 3 === word.length) {
            $word.textContent = word;
            if (!(order === number)) {
              $order.textContent = order + 1;
              $input.value = '';
              $input.focus();
              return;
            }
            if (order === number) {
              $order.textContent = 1;  
              $input.value = '';
              $input.focus();
            }
          }
          return;
        }
        if (!(word[word.length - 1] === newWord[0] && word.length === newWord.length)) {
          alert('틀렸습니다!');
          $input.value = '';
          $input.focus();
          return;
        }
        if (word[word.length - 1] === newWord[0] && word.length === newWord.length) {
          word = newWord;
          $word.textContent = word;
          const order = parseInt($order.textContent);
          if (!(order === number)) {
            $order.textContent = order + 1;
            $input.value = '';
            $input.focus();
            return;
          }
          if (order === number) {
            $order.textContent = 1;
            $input.value = '';
            $input.focus();
          }
        }
    }
 
 
 
 
아래는 원본 코드입니다!

    const number = parseInt(prompt('몇 명이 참가하나요?'), 10);

    if (number) {
      const $input = document.querySelector('input');
      const $button = document.querySelector('button');
      const $word = document.querySelector('#word');
      const $order = document.querySelector('#order');
      let word;
      let newWord;

      const onClickButton = () => {
        if (!word) {
          word = newWord;
          const order = parseInt($order.textContent);
          if (2 === word.length || 3 === word.length) {
            $word.textContent = word;
            if (order === number) {
              $order.textContent = 1;
            } else {
              $order.textContent = order + 1;
            }
          } else {
            alert('두 글자, 세 글자로 이루어진 단어로만 입력해주세요!');
            word = null;
          }
        } else if (word[word.length - 1] === newWord[0] && word.length === newWord.length) {
          word = newWord;
          $word.textContent = word;
          const order = parseInt($order.textContent);
          if (order === number) {
            $order.textContent = 1;
          } else {
            $order.textContent = order + 1;
          }
        } else {
          alert('틀렸습니다!');
        }
        $input.value = '';
        $input.focus();
    }
 
const onInput = (event) => {
        newWord = event.target.value;
      }

      $button.addEventListener('click', onClickButton);
      $input.addEventListener('input', onInput);

    } else {
      alert('몇 명이 참가하는지 입력해주세요!');
  }

javascript

답변 1

1

제로초(조현영)

return 하셨으면 아래 if문 제거해야합니다. 지금처럼 그걸 제거하지않으면 중첩은 그대로 유지되는겁니다.

0

가지지 못한자 가지도 못먹는다

어떤 식으로 제거해야 하는게 맞을까요?? if문을 감싸고 있는 조건문에 제거해야 하는 if문 조건식이랑 동작문을 넣어준 후 제거해줘야 하나요?

0

제로초(조현영)

강좌에 나온대로 그대로 하시면 됩니다. 그냥 if문을 없애세요

0

가지지 못한자 가지도 못먹는다

아 없애도 잘 작동되는군요..! 진짜 헷갈려서 머리가 어지럽네요 ㅎ휴ㅠㅜㅜ 답변 감사합니다!

자바스크립트 입문 강의 재생 안됨

0

98

2

쿵쿵따 조건문 질문입니다.

0

85

2

렛츠가릿 자바스트립트와 공유가 되나요

0

88

1

수강을 하기 전 공부순서에 관한 질문이 있습니다.

1

112

2

안녕하세요

0

111

2

1~45 필터링하는 코드에서 find대신 some써주는게 나을거같습니다.

1

82

2

고차 함수 작성법과 수업 진도 관련한 질문

0

96

3

break와 continue 9:55 내 continue 구문 질문

0

161

2

옵셔널 체이닝 적당한 깊이는 어느 정도인가요?

0

127

2

로또 추첨기 중 입력값을 검사할 때

0

151

2

2-14.else,else if,switch 관련 질문입니다.

0

119

2

가위바위보 이미지(rsp.png)가 안보여요

0

274

3

Math.random() 에 9을 곱하는 이유

0

183

4

클로저 관련해서 질문있습니다.

1

196

2

유튜브 댓글 보고 왔습니다!- 퀴즈 중복된 숫자 검사 for 문

0

249

1

event.target.textContent관련 질문

0

284

2

객체 참조 관련 질문

0

186

1

-2+ -2 = -4 음수 더하기 음수 - 셀프체크 계산기

0

495

1

별찍기 마름모 문제입니다.

0

361

2

숙제 질문

0

228

1

5강 async/await으로 가독성 높이기에서

0

240

1

야구게임 관련 질문입니다

0

192

1

쿵쿵따, 계산기에서 변수 선언

0

184

1

지뢰 힌트 사라짐(대괄호)

0

172

1