과부하가즈아 2023. 8. 15. 14:18

반복문

for문

for(초기화한 변수값; 조건; 증감 표시){
    수행할 명령
};

 

구성요소를 생략하는 것도 가능하다. 

let i = 0; // i를 선언하고 값도 할당하였습니다.

for (; i < 3; i++) { // 'begin'이 필요하지 않기 때문에 생략하였습니다.
  alert( i ); // 0, 1, 2
}


let i = 0;

for (; i < 3;) {
  alert( i++ );
}


for (;;) {
  // 끊임 없이 본문이 실행됩니다.
}
// for문의 구성요소를 생략할 때 주의할 점은 
// 두 개의 ; 세미콜론을 꼭 넣어주어야 한다는 점이다. 
// 하나라도 없으면 문법 에러가 발생한다.

 

인라인 변수 선언

지금까진 ‘카운터’ 변수 i를 반복문 안에서 선언하였다. 이런 방식을 ‘인라인’ 변수 선언이라고 부른다. 이렇게 선언한 변수는 반복문 안에서만 접근할 수 있다.
for (let i = 0; i < 3; i++) {
  alert(i); // 0, 1, 2
}
alert(i); // Error: i is not defined​

인라인 변수 선언 대신, 정의되어있는 변수를 사용할 수도 있다.

let i = 0;

for (i = 0; i < 3; i++) { // 기존에 정의된 변수 사용
  alert(i); // 0, 1, 2
}

alert(i); // 3, 반복문 밖에서 선언한 변수이므로 사용할 수 있음​

while문

while(조건){
    수행할 명령
};

 

> 조건이 참일 동안 명령을 수행


do ~ while문

do{
    수행할 명령
}while(조건);

 

> while의 조건과 관계없이, do의 명령을 무조건 실행부터 함(무조건 한 번 실행하고 while의 조건이 맞으면 실행, 아니면 X)


var i = 12;

do{
    console.log(i);
    i++;
}while(i < 10); // 12

💫반복문 내부의 return

반복문 내부에 `return` 문을 사용하는 것은 프로그래밍 언어에 따라 다를 수 있다. 일반적으로, `return` 문은 함수나 메서드 내에서 해당 함수를 호출한 곳으로 값을 반환하고 함수 실행을 종료하는 역할을 한다. 그러나 반복문 내부에서 `return` 문을 사용할 때 주의해야 할 몇 가지 사항이 있다.

1. 반복문 실행 중단: 반복문 내부에서 `return` 문을 사용하면 해당 반복문의 실행이 즉시 중단된다. 반복문의 나머지 부분은 실행되지 않고, 반복문을 포함한 함수나 메서드에서 바로 반환된다.

2. 반복문 루프 제어: 만약 반복문을 통해 어떤 값을 찾아야 하는 경우, `return` 문을 사용하여 값을 찾았을 때 즉시 반환하고 반복문을 종료할 수 있다.

3. 코드 가독성: 반복문 내에서 `return` 문을 사용하면 코드의 가독성이 저해될 수 있다. 코드 리뷰어나 다른 개발자들이 코드를 이해하기 어려울 수 있다. 반복문은 일반적으로 반복적인 작업을 나타내므로, 가능하다면 `return` 문 없이 반복문을 작성하는 것이 더 명확하고 이해하기 쉬울 수 있다.

4. 변수 범위: `return` 문을 사용하면 해당 변수의 범위(scope)가 반복문 외부까지 확장될 수 있다. 이로 인해 예상치 못한 변수 값 변경이 발생할 수 있다. 변수의 범위를 명확히 이해하고 사용하는 것이 중요하다.

어떤 상황에서는 반복문 내부에서 `return` 문을 사용하는 것이 적절할 수 있지만, 주의해서 사용해야 한다. 코드의 목적과 가독성을 고려하여 적절한 판단을 내리는 것이 중요하다.

소수 출력

function isPrime(n) {
  var divisor = 2;
  while (n > divisor) {
    if (n % divisor === 0) {
      return false;
    } else {
      divisor++;
    }
  }
  return true;
}
// 매개변수 n이 소수라면 true를, 소수가 아니라면 false를 반환합니다.
function isPrime(n) {
  var divisor = 2;
  if(n ==1){
    return false;
  }
  while (n > divisor) {
    if (n % divisor === 0) {
      return false;
    } else {
      divisor++;
    }
  }return true;
}

// 아래 부분은 채점을 위해 작성되었습니다. 수정하지 마세요.
for (var i = 1; i <= 10; i++) {
  document.writeln(i, isPrime(i));

문자열 거꾸로 출력하기

function reverse(str){
  var reverStr = "";
  for (var i = str.length -1; i >= 0; i--){
    reverStr = reverStr + str.charAt(i);
  } return reverStr;
}

console.log(reverse('apple'));

구구단

for(var n = 2; n < 10; n++) {
  for (var j = 1; j < 10 ; j++){
      document.write(n+" x "+j+" = "+n*j, "<br>")
  }
}
function timesTable(n) {
  for (var i = 1; i < 10; i++) {
    document.write(n+' x '+i+' = '+n * i, '<br>');
  }
}
timesTable(2); // 2단만 출력
timesTable(3); // 3단만 출력

‘무한’ 반복문은 보통 while(true)를 써서 만든다. 무한 반복문은 여타 반복문과 마찬가지로 break 지시자를 사용해 멈출 수 있다.

 

현재 실행 중인 반복에서 더는 무언가를 하지 않고 다음 반복으로 넘어가고 싶다면 continue 지시자를 사용할 수 있다.

 

반복문 앞에 레이블을 붙이고, break/continue에 이 레이블을 함께 사용할 수 있다. 레이블은 중첩 반복문을 빠져나와 바깥의 반복문으로 갈 수 있게 해주는 유일한 방법이다.

https://ko.javascript.info/while-for