JadeCode

[리뷰]JavaScript 기초 제어문(반복문) 본문

개발/웹

[리뷰]JavaScript 기초 제어문(반복문)

z-zero 2022. 4. 28. 20:00

반복문

단순한 반복을 보다 효율적이고 간결하게 할 수 있도록 한다.

 

반복문의 기본 형태는 다음과 같다.

초기화, 조건식, 증감문

 

반복문은 개념이 어렵지 않지만 문제를 풀어보면 많이 어렵다.

여러 번 해 보는게 답이다.

 

다음은 반복문을 사용하는 가장 기초적인 문제들이다

 

* 2단부터 9단까지의 구구단 출력

function gugu() {
  for (let i = 2; i <= 9; i++) {
    for (let j = 1; j <= 9; j++) {
      console.log(`${i} * ${j} = ${i * j}`);
    }
  }
}
gugu();

* 소수출력

소수를 출력하는 데 새로운 방법을 알아냈다.

기본적인 생각으로는 i 는 parameter num부터 시작해서 1 보다 클 때 까지 감소하여 반복문을 돌리는데 num % i 가 0이 나오면 약수가  있는 것이니까 false로 return 하고 반복문을 다 돌릴 때 까지 조건에 들지 않으면 true로 리턴하면 풀 수 있다고 생각했다.

function confirmPrime(num) {
  if(num === 1){
    return false;
  } else {
    for (let i = num-1 ; i > 1; i--){
      if (num % i === 0) {
        return false;
      }
    }
    return true;
  }
}

하지만 이와 같을 경우 불필요한 연산을 하게 되는 경우가 있어서 다른 자료들을 찾아봤다.

제곱근을 사용하여 더 효율적으로 풀 수 있다.

일단 그 수의 제곱근을 저장하고, i를 num의 제곱근에서 정수부분만큼 돌려서 나머지가 0 이 나오면 결국 약수가 있는 것이고 그렇지 않으면 그 수는 소수인 것이다.

 

function confirmPrime(num) {
  let sqrt = Math.floor((Math.sqrt(num))); #소숫점 뒤에는 버린다
  if (num === 1) { # 1은 소수가 아니다
    return false;
  }
  if (num === 2) { # 2는 소수이다
    return true;
  }
  if (num % 2 === 0) { # 짝수는 소수가 아니다
    return false;
  }
  for (let i = 3; i <= sqrt; i += 2) { 
    if (num % i === 0) {
      return false;
    }
  }
  return true;
}

이 개념을 이해하는 데는 시간이 걸렸으나 더 유용한 것 같다.

 

기초 제어문인 조건문, 문자열, 반복문을 공부하면서 기초를 제대로 잡아야겠다는 생각이 들었다.

 

 

 

'개발 > ' 카테고리의 다른 글

[리뷰] [HTML/CSS] 활용  (0) 2022.05.03
[리뷰] CSS 기초  (0) 2022.05.02
[리뷰] HTML 기초  (0) 2022.04.29
[리뷰] JavaScript 기초 제어문(조건문, 문자열)  (0) 2022.04.27
[리뷰] JavaScript 기초  (0) 2022.04.26
Comments