JavaScript_반복문(for,while)

🙋🏻‍♀️·2022년 4월 7일
0

반복문은 너무 헷갈리기 때문에 따로 정리함💻


✔️for문의 기본 구조

for (초기화 부분; 조건부분; 추가동작부분) {       //; 세미콜론 필수
  동작부분
}

🔹초기화부분: for반복문이 실행될때 가장 먼저 그리고 딱 한 번만 실행되는 부분

🔹조건부분: 이 부분에 작성된 코드를 불리언 형태로 평가한 다음 true로 판단되면 동작부분을 실행.

🔹추가동작부분: 조건부분이 true로 판단됐을때 이 동작 부분을 실행하고 그 다음 추가적으로 동작할 부분을 작성하는 곳




⭐⭐⭐⭐⭐

if문과의 차이점은 if문은 어떤 조건이 충족되면 동작부분을 한번만 수행하고 끝나지만
for문은 반복문인만큼 조건 부분이 충족되면 계속해서 동작 부분을 반복함.




📢코드잇 최고를 10번 출력하는 for 반복문
(i도 잘 출력되는지 보기 위해 i도 함께 연결해서 출력)
-->변수와 문자열을 연결하는거니까 템플릿 문자열 입력

for ( let i = 1; i <= 10; i ++) {
  console.log(`${i} 코드잇 최고!`);
}
//
1 코드잇 최고!
2 코드잇 최고!
3 코드잇 최고!

✍️for반복문 복습하기

  1. 초기화 부분의 변수 i 선언 후 조건부분 평가

  2. 처음에는 i가 true니까 동작부분(콘솔)이 실행됨.

  3. 그럼 i는 1이 되고 첫 번째 코드잇최고가 출력됨.

  4. 그 다음은 추가 동작 부분인데 i값이 1이 증가했으니까 이제는 i가 2가됨.

  5. 초기화는 한번만 실행되기 때문에 한번 반복이 일어나면
    그 다음 순서는 초기화가 아니라 조건부분❗

  6. 이때부터는 조건부분이 false가 될때까지 조건부분,동작부분 그리고 추가 동작 부분 순서로
    계속해서 반복이 일어남.

  7. 그러면 이제 조건 부분이 또 평가가 되겠지? 직전에 i를 1씩 증가시켜 줬으니까
    이제는 i가 2인 상태로 평가됨. 당연히 조건을 충족하니까 두번째 코드잇 최고가 출력.

  8. 10번 반복하고 i가 11번째 되는 지점에서 다음 조건 부분이 false가 되면서 반복문 종료.




✍️반복문에서 가장 먼저 생각해야 될 부분은 '얼마만큼 반복할까?' 이다
그 반복의 횟수를 저장하는 역할이 바로 변수 i.
우리는 10번 반복하는게 목표니까 i는 10보다 작거나 같을때 라는 조건을 만듦
자연스럽게 반복횟수를 카운트하기 위해서 이 변수의 값을 하나씩 증가시키는 코드를
추가 동작 부분에 작성하는것.



📢for문 Tip

1. 추가동작부분을 꼭 채울 필요는 없다.

for 반복문에서 추가동작부분은 사실 꼭 채울 필요는 없습니다.

추가동작부분에서 i를 1씩 증가시키는 부분이 여기 동작부분에 들어가도 문제는 없습니다.

for (let i = 1; i <= 10;) {
  console.log(`${i} 코드잇 최고!`);
  i++;
}

위 코드 처럼 동작부분 아래에 i를 증가시켜도 아무런 문제 없이 똑같은 결과가 출력이 되는데요.

동작부분에서 i를 증가시켰고, 추가동작부분에는 아무것도 작성하지 않았기 때문에 그냥 추가 동작부분에서 아무 동작도 하지 않는 것입니다.

하지만, for문의 특성상, 이 추가동작부분이 있기 때문에 여기 동작부분에서는 실제로 반복하고자하는 내용들만 집중하고 어떤 조건과 관련된 부분은 이 소괄호에 집중하면서 좀 더 목적에 맞는 코드를 작성할 수 있게 되는 것이죠.




2. 초기화부분에서 생성한 변수는 for문의 로컬변수다.

for (let i = 1; i <= 10; i++) {
  console.log(`${i} 코드잇 최고!`);
}

console.log(i); // Error !!

❗❗for문 안에서 생성한 로컬변수이기 때문에 for 반복문이 종료되고 나서 for 반복문 밖에서 변수를 사용하려고 하면 오류가 발생한다는 점.

사소하지만 이런 부분들도 꼭 기억해 주세요!



3. 초기화 부분도 반드시 채울 필요는 없다. 단,
for 반복문에서 초기화부분도 사실 꼭 채울 필요는 없습니다.


위 코드 처럼 for 반복문의 로컬변수를 꼭 활용하지 않아도 반복문 밖에 있는 글로벌 변수를 활용해도 아무런 문제없이 같은 결과를 출력합니다.

❗❗단! for문의 소괄호 안쪽 가장 첫번째 세미콜론은 생략할 수 없습니다.

저 세미콜론은 초기화부분과, 조건부분을 구분하는 세미콜론이기 때문에 초기화 부분의 코드를 생략하더라도 세미콜론 만큼은 생략해선 안되는 것이죠!

❗❗for문의 소괄호 안쪽은 반드시 세미콜론 2개가 필요합니다. 그렇지 않으면 실행 오류를 만나게 된다는 점. 꼭 기억해 주세요





✔️while문 (while statement)

반복문이니까 한번 실행하면 조건 부분이 충족되지 않을때까지 동작 부분 계속 반복

기본구조
    while (조건부분) {
      동작부분
    }




📢while문과 for문 예제로 알아보기

    let i = 1;    //while문과 for문은 대부분 서로 대체가 가능함.
                  //while문에는 초기화 부분이 없기 때문에 반복에 필요한 횟수를 카운트하려면 
                  //글로벌 변수를 미리 만들어줘야 합니다.
                
    while ( i <= 10) {
      console.log(`${i} 코드잇 최고!`);
      i++; //-->추가 동작 부분이 없기 때문에 동작 부분 안에 작성.
    }
   
    for ( let i = 1; i <= 10; i++) {
      console.log(`${i} 코드잇 최고!`);
    }




그럼 while문은 언제 쓰는 것이 좋을까😲?

📢예시1 (30보다 큰 숫자 중에 7의 배수를 찾는 코드)

  let i = 30;           
 
  while ( i % 7 !== 0 ) {  //30 나누기 7은 나머지값 2이고 0과 불일치함. 그래서 true가 됨
    i++;                    //그래서 i가 증가하게됨 다음 i값은 31,32,33...이렇게
  }                         //i가 35가 되는 순간에 조건식이 false가 되고 반복문이 종료됨
                     
  console.log(i);         //그러면 그동안 증가한 i값이 콘솔에서 출력됨. 35 출력

for문은 보통 조건 비교에 사용되는 값을 반복문 내부에서만 사용하고
반복이 끝나면 외부에서는 사용할 수 없기 때문에 지금처럼 글로벌 변수를 조건 비교하여 사용하고

반복문 내부에서도 다루면서 결과적으로 반복문이 종료된 다음에도 이 변수를 사용해야될때는
for문보다 while문을 활용하는것이 좋음

0개의 댓글