기초 제어문 : 반복문

0

JAVASCRIPT

목록 보기
3/19
post-thumbnail

오늘의 Checkpoint

반복문

비슷한 코드를 반복적으로 실행할 경우에 사용

while문

비교적 반복 횟수가 명확하지않을 경우

초기화;
while(조건식){
    반복될 실행코드 -> 증감문을 포함 
}

for문

비교적 반복의 조건이 명확할 경우

for(초기화; 조건식; 증감문){
	반복될 실행 코드
}

이중반복문
반복문 속에 반복문이 적용되는 경우

구구단 예시

// 4단 구구단
function mulTablePrinter(num){
    for(let i= 2; i <= 9; i++){
        console.log(num+'*'+i+'='+ num*j);
    }
}
mulTablePrinter(4);

//템플릿 리터럴과 이중 반복문으로 전체 구구단 표현
function mulTablePrinter(num){
  for(let i = 2; i <= 9; i++){
      for (let j = 1; j <= 9; j++){
          console.log(`${i} * ${j} = ${i*j}`);
      }
  }
}
mulTablePrinter();

참고

Math.sqrt()

입력받은 숫자의 제곱근을 반환
-> 루트 √ 씌운 값을 의미
-> 소수 구하는 함수 정의할 때, 반복문 범위 줄여서 불필요한 연산 줄일 수 있음

Math.sqrt(num);
// num이 음수라면 NaN 반환

Math.sqrt(49); // 7
Math.sqrt(2); // 1.414213562373095

Math.sqrt(1);  // 1
Math.sqrt(0);  // 0
Math.sqrt(-1); // NaN


이해도 자가 점검 리스트

Chapter1. 조건문

  • truthyfalsy 가 조건문에서 작동하는 방식을 이해할 수 있다.
  • 비교 연산자를 통한 엄격한 비교(=== , !==)에 대해 이해할 수 있다.
  • ifelse if , else를 이해하고 무리 없이 활용할 수 있다.
  • 논리 연산자를 (&&, ||, ! ...) 통해 복잡한 조건을 간결하게 작성할 수 있다.
  • 복잡한 조건문을 활용하여, 실생활에서 쉽게 마주하는 문제를 해결하기 위한 알고리즘을 구현할 수 있다.

Chapter2. 문자열

  • length 속성을 활용해 문자열의 길이를 확인할 수 있다.
  • 두 개 이상의 문자열을 하나의 문자열로 만들 수 있다.
  • slice() 메서드를 활용해 문자열을 원하는 만큼 ‘복사’할 수 있다.
  • 영문으로 된 문자열을 대문자 또는 소문자로 바꿀 수 있다.
  • 문자열 중 원하는 문자의 index를 찾고 접근할 수 있다 str.indexOf('a') 또는 str.lastIndexOf('a'),str[1]
  • includes() 메서드를 활용해 문자열 중 원하는 문자가 포함되어 있는지 알 수 있다. str.includes('a')
  • split() , join() 메서드를 활용해 문자열을 배열로 바꾸거나, 배열을 문자열로 바꿀 수 있다.
  • 템플릿 리터럴(Template literals) 문법을 사용할 수 있다.

Chapter3. 반복문

  • 반복문을 활용하여 단순한 기능을 반복하여 수행할 수 있다.
  • 반복문(for문)과 문자열, 숫자를 이용해 반복적으로 코드를 실행시킬 수 있다.
  • 기본적인 for문 (for (let i = 0; i < 5; i++))을 응용하여 다양한 for문을 만들 수 있다.
  • for문과 while문의 차이에 대해서 설명할 수 있다.
  • 반복문과 조건문을 응용하여 특정 조건에서만 코드가 실행되도록 할 수 있다.
  • 이중 for문을 이해하고 활용할 수 있다.

자기주도적 학습 가이드

이해도 자가 점검 리스트의 결과를 토대로 자기주도적 학습 계획을 수립하고 실천해 보세요.

  • 오늘 학습이 어려웠다면(0~12개)
    • 개념학습 다시 보기
    • 연습문제 다시 풀어보기
    • 이해되지 않는 개념 아고라스테이츠에 질문하기
  • 오늘 학습이 수월했다면(12~16개)
    • 조건문, 문자열, 반복문에 대한 주요 개념 블로그에 정리하기
    • 이해되지 않은 개념은 검색을 통해 자기주도적 학습 후 블로그에 정리하기
    • 아고라스테이츠에 올라온 다른 수강생의 질문에 답변하기
  • 추가적인 학습을 하고 싶다면(17~19개)
    • 문자열은 배열과 비슷한 속성을 가지고 있습니다. 레퍼런스(MDN - Array)를 살펴보면서 문자열과 배열의 공통점이 무엇인지 확인하고 블로그에 정리해 보세요.
    • 아고라스테이츠에 올라온 다른 수강생의 질문에 답변하기


오늘의 나

느낀점
아직 시작한지 1주일도 안되었는데 평균 4시간 수면...오늘은 30분...내일의 맑은 정신을 위해, 수면시간을 잃지는 말자.
오늘의 반복문 연습문제는 충격적이었다. 알고리즘을 문제를 풀어본적이 없지만 처음 경험하는 알고리즘 문제 같았다. 1-2줄 밖에 안되는 문제에(주의사항들은 따로 분류되어있음) 조건들을 어떻게 대입해야할지 막막하고 레고를 어디에다가 붙여야 되는지 혼란스러웠다.
그런데, 오후에 튜터님이 직접 문제 몇개를 푸는 모습을 보여주셨는데 수도코드가 이래서 중요하다는 건지 알게되었다. 내가 알고있는 문제를 타인에게 이해시키기 위한 용도라고 잘못 알았는데, 수도코드를 작성하면 더 구체적인 흐름이 보였다. 남이 아닌 나도 이해시키고 가이드로서 역할을 할 수 있구나 싶었다.
아직, 나에게는 문제를 이해하기 위한 용도지만 느려도 계속 하다보면 아주 조금이라도 빨라질거라 믿고 계속 흐름을 적어봐야겠다.

개선점 및 리마인드

  • pseudocode : 코드로 작성하기 전 수도코드로 전체적인 로직의 흐름을 파악하고, 세부적인 계획도 가능, 쉬운문제/ 어려운 문제 모두 수도코드의 장단점이 존재
  • 남과 비교하지 않기, 버티면 버티지 못한 나보다는 발전할 수 있음
  • 컨디션 조절 필수! 잠을 자야 맑은 정신으로 분석할 수 있음

0개의 댓글