D+4 / [JavaScript] 기초 제어문 - 반복문

김서연·2022년 6월 28일
0

프론트엔드

목록 보기
5/12

* 반복문

: 같거나 비슷한 코드를 여러 번 실행시켜야 할 경우에 쓰는 구문이다.

  • 반복문을 코드로 작성하는 방법

     let sum = 1;
      sum = sum + 2;
      sum = sum + 3;
      sum = sum + 4;
      console.log(sum);
    
      1. 반복할 내용을 먼저 코드로 작성한다.
        'sum과 숫자(n)의 합'을 'sum에 대입'하자  -> sum = sum + n;
      2. 반복할 조건을 코드로 작성한다.(조건문)
         숫자(n)는 2부터 시작한다.  -> let n = 2;
         숫자(n)는 4가 될때까지 반복한다.  -> n <= 4;
         숫자(n)는 1씩 증가한다.  -> n = n+1;
      3. 새로운 문법에 대입한다 ( for구문 등등)
  • for 구문

     1. 반복할 내용을 중괄호 block안에 넣어준다
       let sum = 1;
       for() {
           sum = sum + n // 반복할 내용
       }
       console.log(sum)
     2. 반복할 조건을 초기화, 조건식, 증감문 순으로 넣어준다.
       let sum = 1;
       for(let n = 2; n<=4; n = n+1) {    //***조건문 쓸때 n도 선언해줘야한다.
           sum = sum + n // 반복할 내용
       }
       console.log(sum) // 10
     3.연습 - 아래 콘솔 출력을 다섯번 반복해서 찍기 위해 필요한 조건은?
       for(let n=1; n<=5; n = n+1 ){
           console.log('hello world');
       }
  • while 구문
    : 반복할 조건중, 초기화,증감문은 따로, 조건식만 괄호 안에 넣어준다.

     let sum = 1;
      let n = 2; //초기화 및 선언.. n은 for문이던, while문이던 함수와 다르게 선언해줘야한다.
      while(n <= 4){
          sum = sum + n;
          n = n + 1; // 증감문
      }
      console.log(sum);  // 10
      % for문 대신에 while문을 쓸수 있고 반대도 당연히 가능하나, 초기화나 증감문이 필요없는 경우에 while 사용한다.
  • 실습

     > 함수를 이용한 구구단 출력
       let num = 3;
       function mulTablePrinter(num){
           console.log(num * 1);
           console.log(num * 2);
           console.log(num * 3);
           console.log(num * 4);
           console.log(num * 5);
           console.log(num * 6);
           console.log(num * 7);
           console.log(num * 8);
           console.log(num * 9);
        }
     > 반복문을 이용한 구구단 출력
       1.
        for(n = 1; n<= 9; n+1){
            console.log(num * n)
        }
       2. 몇단의 구구단을 출력할지 결정하는 변수 num은 함수 실행 시 인자로 받아온다
        function mulTablePrinter(num){
          for(n = 1; n<= 9; n+1){
            console.log(num * n)
          }
        }
        mulTablePrinter(3); // 3단 실행
     > 이중 반복문을 이용한 구구단 출력 : 인자로 전달되고 있는 2부터 9까지의 숫자도 반복문으로 표현하여 2단부터 9단까지의 구구단 한번에 출력
       function mulTablePrinter(){
           for(let n = 2; n<=9; n = n + 1){
             for(let m = 1; m <= 9; m = m + 1){
                 console.log(n * m)
             }
           }
       }
        mulTablePrinter()
     > 2 * 2 = 2 형식으로 템플릿 리터럴을 이용하여 구구단 출력해보기!
       function mulTablePrinter(){
          for(let n = 2; n<=9; n = n + 1){
              for(let m = 1; m <= 9; m = m + 1){
                  console.log(`${n} * ${m} = ${n * m}`)
              }
          }
       }     
       mulTablePrinter()


연습문제 ___

Self feedback

  • 알고리즘 정말 개념만 공부해서 절대 풀수가 없다는걸 깨닫게 되었다....ㅠㅠ 수학적 지식도 있어야 했다.. 학생때 수학을 왜 배우나 했는데 성인 되어서도 필요하다. 자연수에서 소수를 골라내려고 제곱근을 이용해서 알고리즘으로 만들었다... 생각지도 못한 방법이라 연습 또 연습해야지 다짐하게되는 하루였다.

Q&A

  • 6번 : 수(num)를 입력받아 1부터 num까지의 정수로 구성된 문자열을 리턴해야 합니다.

    function makeDigits(num) {
    let result = '';
    for (let i = 1; i <= num; i++) {
    result = result + String(i); -> Q
    } ....//
    Q. let result = 숫자 0; 이여도 String생성자가 있어 result + 숫자+문자열로 되어서 1호출할떄 문제없을텐데 왜 안될까?
    A. 콘솔에 함수 호출하면 0숫자는 문자열 취급되어서 makeDigits(1) // '01'

  • 17번 : 사용자의 이름과 미접속 시간(분)을 입력받아 조건별로 다른 메세지를 리턴해야한다

    function makeLastSeenMsg(name, period) {
    let num1 = parseInt(period)
    if( //....
    }else if(1 <= (num1/1440) && (num1/1440) < 31){ ....//
    -> 마지막 조건 부분이 해결되지 않았는데, 원래는 ' 1 <= (num1/1440)< 31 '이렇게 써서 안됬었다. 부등호 조건 전체가 or이 적용되는지, and인지 확인할수 없어서 조건 제대로 만족 할수 없기때문에 생각한데로 나오지 않는다

profile
프론트엔드 엔지니어로 성장

0개의 댓글