반복문) for문, while문, do..while문

YS_Study.log·2022년 1월 15일
0

반복문이란? (loop statement)

반복문은 같거나 비슷한 코드를 여러 번 실행시켜야 할 경우에 쓰는 제어문이다.
조건식의 평가 결과가 참인 경우 { } 코드블록을 실행하며, 그 후 조건식을 다시 평가하여 여전히 참인 경우에 코드블록을 다시 실행하기를 반복하며, 조건식이 거짓일 때 조건식의 반복을 멈춘다. 반복문은 for문, while문, do...while문이 있다.

for문 기본문법

for문은 반복 횟수가 명확할 때 주로 사용하는 반복문이다.
for문의 기본구성은 () 괄호내에 초기식, 조건식, 증감식이 들어가고 { } 내에 반복실행할 문이 들어간다.
변수 선언문(할당문)은 맨 처음 딱 한번만 실행되며, 변수 선언문이 실행된 후, 조건식이 실행된다. 조건식의 평가 결과가 참일 시 {}코드블록이 실행된다. 코드블록의 실행이 종료되면 증감식이 실행된다. 조건식이 거짓이 될때 까지 무한반복되며 조건식이 거짓일 때 for문의 실행이 끝난다.

  • 초기값을 i 나 j로 설정하는 이유
  • i (iteration) : 반복을 의미하는 단어여서 일반적으로 i를 변수 이름으로 사용한다.
  • j : for 문이 두개라면 암묵적으로 다음 변수는 j로 한다. (알파벳순서가 i다음 j니깐 큰 이유없다.)
  • 컴퓨터는 0부터 데이터를 센다. 그래서 보통 초기값, 처음 지정하는 값은 보통 0으로 지정한다.

순서

초기식 → 조건식(참) → {실행문} → 증감식 → 조건식(참) → {실행문} → 증감식 → 조건식 (거짓) 정지!


// 기본형태
for (초기식(변수 선언, 할당 및 초기값/ 초기화 값); 조건식(실행될 조건); 증감식;) {
조건식이 참인 경우 반복 실행할 문
}

let num = 1;                            // 변수 Num을 선언하고 1을 할당한다.(1로 초기화한다.)
for (let i = 0; i <= 2; i++){ //(i+1=i)) { // 변수 i 의 초기화 값 0이
    num = num + i;                     // 실행될 조건 i 가 2가 될때까지
}                                      // i가 1씩 증가하는 스탭으로 반복해줄 것이다.
  console.log(num); // 7

// 조건식 i)0 <= 2 / 참 -> 실행될 코드블록 {Num = 1 + i)0} // Num = 1
// -> 증감식 i)0 + 1 = i)1; 

// 조건식 i)1 <= 2 / 참 -> 실행될 코드블록 {Num = 1 + i)1} // Num = 2 
// -> 증감식 i)1 + 1 = i)2; 

// 조건식 i)0 <= 2 / 참이면 -> 실행될 코드블록 {Num = 2 + i)2} // Num = 4
// -> 증감식 i)2 + 1 = i)3;  

// -> 조건식 i)3 <= 2 // 거짓 -> 반복문 정지 

// i가 3가되서 2보다 i가 커서 조건식이 거짓! -> 반복문(for문)의 실행을 정지한다. (반복문이 총 3번 반복)

while 문

while문은 반복 횟수가 불명확할 때 주로 사용하는 반복문이다.
while문은 for문과 다르게 () 괄호 안에 조건식만 들어가며, 초기화식과 증감문을 따로 작성하며 증감문은 {} 코드블록에 작성한다.
조건식의 평가 결과가 불리언 값이 아니면 강제변환하여 논리적 참, 거짓을 구별한다.

let sum = 2;

let i = 2; // 초기값 설정
while(i <= 4) { // 조건식
sum = sum + i; // 실행할 식
i++; //(i+1=i) // 증감문 
}
console.log(sum); // 10

do while 문

do .. while 문은 do 문 내의 코드 블록을 먼저 실행하고 나서 조건식의 참과 거짓을 평가한다. 조건식이 참인 경우 코드블록을 반복하고, 거짓인 경우에는 코드블록을 반복하지 않는다.
따라서코드블록은 무조건 한 번은 실행되는 점이 거짓일때 코드블록이 실행되지 않는 while문, for문과 다르다.

let number = 0;
do  // number이 3보다 작으면 코드블록을 반복실행한다.
{
	console.log(number); // 0 1 2
	number++;
} while (number < 3); 
console.log()
profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!

0개의 댓글