본문 바로가기
Javascript

Javascript - 반복문(for, for-in, for-of, while, do-while)

by DGK 2021. 9. 18.

 

인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

반복문(for, for-in, for-of, while, do-while)

 

  • 반복문
반복문 (   )의 조건이 만족하는 동안에는 계속해서 반복문 {   }의 코드가 실행된다.

 

 

  • for문
<기본 구조>
for(조건){

   //code  
   
}​

<활용 예시>
for(var i = 0 ; i < 5 ; i++){    //i++ : i = i + 1
    console.log("The number is " + i);
}

// 결과 :
// The number is 0
// The number is 1
// The number is 2
// The number is 3
// The number is 4

// for문 (조건)안의 ;를 기준으로 첫번째 인자는 '조건의 시작점'이고, 
// 두번째 인자는 'for문을 종료시키는 조건', 
// 세번째 인자는 '조건을 실행시키기 위한 인자'이다.



var i = 1;		//첫번째 인자
var total = 0;
for(; i <= 10 ;){
  total = total + i; 	//total += i
  i++;			//세번째 인자
}

console.log(total);			

// 결과 : 55

//이렇게 첫번째 인자와, 세번째 인자를 for문의 조건 밖에서 선언한 형태로도 
//for문을 작성할 수 있다.



for(var i = 0 ; i < 5 ; i++){   //i++ : i = i + 1
    if(i == 3){
     break;                  
  }
	 console.log("The number is " + i);
}

// 결과 :
// The number is 0
// The number is 1
// The number is 2

//for문을 중간에 중단시키고자 할 때에는 break;를 사용하여 중단시킬 수 있다.

//만약 특정 조건하에 for문을 계속 실행시키고자 한다면 
//break; 대신 continue;를 사용하면 된다.

//세부조건에 따라 어떤 경우에 코드를 계속 실행시키고 중단시킬지를 
//continue;와 break;를 사용함으로써 구현할 수 있다.



var numbers = [1, 3, 5, 7];
var len = numbers.length;
for(var i = 0 ; i < len ; i++){	  //여기서 변수 len은 4이다.
    console.log(numbers[i]);
}

// 결과: 1, 3, 5, 7

//배열을 사용하여 for문을 만드는 경우이다.

 

 

  • for-in문
<기본 구조>
var numbers = [1, 3, 5, 7];

for(var i in numbers){      
    console.log(numbers[i]);
}

// 결과 : 1, 3, 5, 7

//i에 배열의 '인덱스번호'를 순서대로 넣어준다. ex 0,1,2,3
//배열을 활용하여 for-in문을 만들 수 있다.



var person = {
	firstName: "John",
	lastName: "Kim",
	age: 30
};

for(var key in person){     
    console.log(person[key]);   
}

// 결과 : John, Kim, 30

//key에 오브젝트의 키값을 순서대로 넣어준다. ex firstName, lastName, age
//key에 오브젝트의 키값이 순서대로 들어오면서 출력이 가능하다.

//오브젝트에 접근하는 방식은 person.firstName;, person["firstName"];으로 
//두 가지 방식이 있는데 console.log(person[key]);의 식에서는 두 번째 방식을
//사용한 것이다.(console.log(person.key);로 접근 불가능함)

//for-in문을 중간에 중단시키고자 할 때에는 break;를 사용하여 중단시킬 수 있다.
//오브젝트를 활용하여 for-in문을 만들 수 있다.

 

 

  • for-of문
<기본 구조>
var numbers = [1, 3, 5, 7];     
for(var num of numbers){    
    console.log(num);
}

// 결과 : 1, 3, 5, 7

//num에 배열의 '값'을 순서대로 넣어준다. ex 1,3,5,7



var cars = ["Hyundai", "KIA", "Volvo"];
for(var car of cars){       
    console.log(car);
}

// 결과 : "Hyundai", "KIA", "Volvo"

//num에 배열의 '값'을 순서대로 넣어준다. ex Hyundai, KIA, Volvo​
//for-of문을 중간에 중단시키고자 할 때에는 break;를 사용하여 중단시킬 수 있다.

 

 

  • while문
<기본 구조>
While(조건){

  //code  
    
}

조건을 만족하는 동안 계속해서 { }의 코드를 반복 실행한다.


<활용 예시>

var i = 1;
var total = 0;
while(i <= 10){
      total = total + i;
      i++;
}
        
console.log(total);

// 결과 : 55



var i = 11;
var total = 0;
while(i <= 10){
      total = total + i;
      i++;
}
        
console.log(total);

// 결과 : 0

//조건에 충족되지 않아서 while문의 코드가 실행되지 않고 0의 결과 값이 도출되는 것이다.

 

 

  • do-while문
<활용 예시>
var i = 1;
var total = 0;
do {
  total = total + i;
  i++;
}while(i <= 10);

console.log(total);

// 결과 : 55



var i = 11;
var total = 0;
do {
  total = total + i;
  i++;
}while(i <= 10);

console.log(total);

// 결과 : 11

//while문의 조건에 충족되지 않더라도 우선적으로 do이하의 코드를 먼저 (1회)실행한다.


<정리>
while문은 조건에 충족하면 {  }의 코드를 반복 실행하지만, do-while문은 먼저 do {  }의 코드를
실행하고 난 뒤에 while문의 조건을 확인한다. 즉, while문은 조건에 만족하지 않으면 애초에 코드가
실행되지 않지만, do-while문은 조건에 만족하지 않더라도 do {  }의 코드가 한 번은 실행된다.

댓글