(TIL) D+3 JS 반복문

JulyK9·2022년 6월 28일
0

반복문

  • for문과 while문의 차이
    상호 변환이 가능
    초기화나 증감문이 필요 없는 때는 while문 쓰기도
    for문 : 반복횟수 명확할 때 (보통 더 많이 씀)
    while문 : 반복횟수 불명확 할 때
  • 이중 for문 이해하고 활용

< for 구문 >

반복할 조건을 초기화, 조건식, 증감문

let sum = 1;

for (let n = 2; n <= 4; n = n + 1) {
	sum = sum + n;
}
console.log(sum); // 10

< while 구문 >

반복할 조건문, 초기화, 증감문은 따로,

조건식만 괄호 안에 넣어줌

let sum = 1;
let n = 2;

while(n <= 4) {
	sum = sum + n;   // 실행문의 위치
	n = n + 1;       // 조건문의 위치 순서에 따라 결과가 달라질 수 있음에 주의!!
}
console.log(sum); // 10

구구단 출력

// function mulTablePrinter(num) {
//   for(let n = 1; n < 10; n = n + 1) {
//     console.log(num * n);
//   }
// }

// mulTablePrinter(3);

let n = 1

function mulTablePrinter(num) {
    while (n <= 9) {
      console.log(num * n)
      n = n + 1;
    }
}

mulTablePrinter(3);

구구단 출력 이중 for문(1단부터 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} = ${n * m}`);
    }
  }
}

mulTablePrinter();

예제 답변 코드 잘 기억해두기 : 함수 결과값 재사용할 때 씀
1. 함수 선언
2. 변수를 선언하고 함수에 인자값을 넣은 결과값을 그 변수에 할당
3. 그 변수값을 재사용 하는 패턴

📌 break문, continue문 알기

  1. break문
    • 더 이상 반복하지 않고, 바로 for문이나 while문을 종료
    • 해당 조건문 블록과 그 밖의 반복문 자체를 바로 탈출
  2. continue문
    - 반복을 끝내지 않음
    - for문이나 while문의 {}안에서 continue문 아래 실행하는 내용을 건너뛰고 다음 반복을 시작
    - continue문 아래 내용은 실행하지 않고 실행 블록을 탈출하여, 다음 반복문 실행절차를 수행
    참고
    https://itbeginner2020.tistory.com/29
    http://rchemist.egloos.com/v/534921

알고리즘 문제

  • 입력받은 인자가 소수인지 판단하는 문제
  1. 케이스가 나눠지는 부분들로 쪼개서 생각
  2. 예외 케이스, 범위가 작은 부분부터 작성해 정리해나감
  3. 리팩토링.. 더 효율적으로 구현할 수 있는 방법
  4. Math.sqrt() 을 이용한 실행 시간 단축 방법(코드반복 횟수를 줄임.. 시간복잡도)
    => '에라토스테네스의 체'이론 (곽리드님이 라이브세션 도입부에 체로 거르는 그림을 보여준 것은 의도?ㄷㄷ)
    => 제곱근을 기준으로 약수의 개수가 대칭을 이룸(참고내용)
    => 그래서 제곱근 이전의 홀수만 체크해서 나눠지는 값이 있는 경우 제곱근 이후도 마찬가지이므로 생략 가능
    => 이 원리를 이해하지 못하니까 계속 들어도 이해가 안되었던 것..
    참고
    https://devmath.tistory.com/60
    https://namu.wiki/w/%EC%97%90%EB%9D%BC%ED%86%A0%EC%8A%A4%ED%85%8C%EB%84%A4%EC%8A%A4%EC%9D%98%20%EC%B2%B4 (에라토스테네스의 체)
    https://velog.io/@support/%EC%BD%94%ED%94%8C%EB%A6%BF-%EB%B0%98%EB%B3%B5%EB%AC%B8%EC%86%8C%EC%88%98%EC%B0%BE%EA%B8%B0%EC%A0%9C%EA%B3%B1%EA%B7%BC

그 밖에 더 생각할 것들

profile
느리지만 꾸준하게. 부족하거나 잘못된 부분은 알려주시면 감사하겠습니다.

0개의 댓글