break문

  • 반복문을 중간에 멈춰야하는 경우. 반복문으로 값을 하나씩 찾다가 값을 찾으면 반복문을 멈추는
    < 코드 >
let i = 0;
while (true) {
    if (i === 5) break;
    i++;
}
console.log(i);

코드해석: 예제의 반복문은 배운대로라면 while (true)이기 때문에 무한히 반복됩니다. 하지만 여기에 break문이 들어 있다는 점을 주목해야 합니다. i 가 0이고 1씩 증가합니다. 그러다가 i 가 5가 되면 반복문은 종료됩니다.

for문 (!잠깐!)

for (let i = 0; i < 100; i = i + 2) {
    console.log(i + 1);
}

코드해석: i는 0이고 i는 100보다 작다. 한마디로 99까지 증가한다는 것, i는 2씩 증가하는데 최종적으로는 +1이 더된다. 그러므로 짝수로 찍히는게 아니라, 홀수가 찍히는 것. 최종적으로는 홀수값들이 나오다가 마지막에 99에서 멈춘다. 맨처음 숫자 1은
console.log (i+1) 의 영향을 받아서 1이 나오는 것.

continue문

  • 가끔 반복문이 특정 조건에서만 실행되기를 원할 수도 있습니다. 이럴때 continue문을 사용합니다. continue문을 넣으면 이후 코드는 건너뛰게 됩니다.

< 코드 >

let i = 0;
while (i < 10) {  // 홀수만 console.log
    i++;
    if (i % 2 === 0) { // 짝수만
        continue;
    }
    console.log(i);
}

결과 : 1,3,5,7,9 가 나온다.
코드해석 : i++가 되어있지만, continue때문에 2의배수는 건너뛰어서 다음껄로 넘어가라 이런식으로 코드가 해석된다. % 는 나머지를 뜻하고 2를 나머지로 나눠서 0이 되는 즉 짝수를 건너뛰라는 식이 된다.

<팁> 초보일 때는 코드 옆에 꼭 주석을 달아라

중첩된 반복문 사용하기

  • 프로그래밍 할 때 어려운 것 중 하나가 중첩된 반복문입니다. 반복문 안에 반복문이 들어 있는 경우인데, 이를 '반복문이 중첩됐다' 라고 표현합니다.
    심하면 4번까지도 중첩이 되어있는 경우들이 많습니다.

< 코드 >

for (let i = 0; i < 10; i++) {
    for (let j = 0; j < 10; j++) {
        console.log(i, j);
    }
}

// i== 0 j==0  console(0,0);
// i== 0 j==1  console(0,1);
// i== 0 j==2  console(0,2);
// i== 0 j==10, 조건X
// i== 1 j==0  console(1,0);
// i== 1 j==9  console(1,9);
// i== 1 j==10, 조건X
.
.
.
//이게 (9,9) 나올 때까지 계속 반복함.

코드해석: 밖에 것을 먼저 실행 후 -> 안에 것을 모두 다 실행 -> 그 다음 또 밖에 것을 실행한다고 알고 있으면 된다. 이중포문은 밥먹듯이 쓰이는거라 무조건 개념을 알아야한다.

< 코드 >

for (let i = 0; i < 5; i++) {
  if (i % 2 === 0) continue;
  for (let j = 0; j < 5; j++) {
    if (j % 2 === 0) continue;
    for (let k = 0; k < 5; k++) {
      if (k % 2 === 0) continue;
      console.log(i, j, k)
    }
  }
}


// i==1 j==1 k==1 console.log(1,1,1)
// i==1 j==1 k==2 continue
// i==1 j==1 k==3 console.log(1,1,3)
// i==1 j==1 k==4 continue
// i==1 j==1 k==5 조건X
// i==1 j==2 continue
// i==1 j==3 k==1 console.log(1,3,1)
.
.
.
// 이렇게 (3,3,3)이 나올때까지 반복

제일 안쪽에서부터 돌고 그 다음에 돌고 그다음 제일 밖에가 도는데 밖에가 다 돌면 고정이 되고 다시 맨 안쪽부터 돌게 됨 그래서 나중에 (3,3,3) 이 나온다.

-퀴즈-

구구단을 출력하되, 결과에 짝수가 하나도 나오지 않게 해보세요.continue문을 사용하세요.

for (let i = 0; i < 10; i++) {
  if (i % 2 === 0) continue;
  for (let j = 0; j < 10; j++) {
    if (j % 2 === 0) continue;
    console.log(i, j, i * j)
  }
}

또는

for (let i = 0; i < 10; i++) {
  for (let j = 0; j < 10; j++) {
    if (i % 2 === 0 || j % 2 === 0) continue;
    console.log(i, '*', j, '=', i * j)
  }
}

이렇게 표현할 수가 있다.

코드해석: i가 처음으로 돌고 그 다음엔 j가 전부 다 돌게 된다. if (i % 2 === 0 || j % 2 === 0) continue; 라는 식이 나왔으니 2의 나머지 즉 짝수들은 배제가 된다.
즉 1(i++때문에),3,5,7,9라는 숫자들만 남게된다. 이제 남는 숫자들이 밖에가 한번 돌 때 안은 전부 다 돌게 되고 밖이 1이면 안은 1,3,5,7,9가 되고, 밖이 3이면 안은 1,3,5,7,9로 돌게 되어서 1,3,5,7,9단의 홀수만 결괏값으로 나오게 되는 것이다.

중첩 for문으로 만들어보면

for (let i = 1; i < 10; i = i + 2) {
  for (let j = 1; j < 10; j = j + 2)
    console.log(i, j, i * j)
}

이렇게 만들 수 있다.

profile
프론트엔드 개발자를 꿈꾸는 도화지 위를 달리는 여자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN