루프(loop)

Featured image

루프


루프는 특정 조건이 충족될 때까지 코드블록을 반복하는 기본 프로그래밍 구성임. for, while, do-while,for-of 루프 등이 있음.

예1: for 루프 5번 실행되고 1부터 5까지 숫자를 표시하는 루프.

for(initialization; condition; increment/decrement){ // code to be executed }

for(let i = 1; i <= 5; i++){
    console.log(i)
}

예2: while 루프 지정한 조건이 true인 동안 코드블록을 반복 실행.

while(condition){ // code to be executed }

let i = 1;
while(i < = 5){
    console.log(i);
    i ++;
}

예3: do-while루프 이 예에서 ‘i<10 조건에 관계없이 한번은 실행되며, 조건이 true로 유지되는 한 계속 루프가 실행됨.

let i = 0;
do {
    console.log(i);
    i++;
} while(i<10);

예4: for-of 루프 for-of 루프는 배열 요소를 반복하기 위해 특별히 설계된 특수 루프임.

let myArray = ["dog", "cat", "bird", "fish"];
for (let element of myArray){
    console.log(element);
}

위 예에서 루프는 ‘myArray’ 배열의 각 요소를 거쳐 각 반복 중 ‘element’ 변수는 현재 요소 값을 보유함. 루프 내에서 ‘console.log(element)’ 문을 사용하면 각 반복마다 현재 요소가 표시됨. for-of 루프 대안으로 배열을 반복하는 더 간단하고 읽기 쉬운 방법인 forEach()메서드가 있음,이 메서든,ㄴ 명시적 루프제어 없이 배열의 각 요소에 대한 작업을 쉽게 할 수 있음.

예5: for-in 루프

let person = {
    name: "John",
    age: 30,
    job: "Developer"
};
for(let key in person){
    console.log(key + ": " + person[key]);
}

‘for-in’루프는 ‘person’ 객체 속성을 반복하는데 사용됨. 각 반복에서 ‘key’변수에는 현재 속성 이름이 할당되고 ‘console.log(key + “: “ + person[key]);’ 는 현재 속성이름과 해당값을 모두 표시하는데 사용.

‘for-in’루프는 배열을 반복하는데 적합하지 않음. 대신 ‘for-of’루프나 ‘forEach()’메서드를 사용해야함.

break 문

루프나 스위치 문을 종료나 중단시키는데 사용함. 특정 조건에 따라 조기 종료나 불필요한 반복을 피하기 위함.

for(var i = 0; i < 10; i++){
    if(i===5){
        break;
    }
    console.log(i)
}

중첩 루프(nested for loop)

다른 루프 내 배치된 루프. 외부 루프가 반복될 때마다 내부 루프가 실행됨. 중첩을 통해 내부 루프는 외부 루프에 정의된 변수에 엑세스하고 수정할 수 있음.

다차원 데이터 구조나 여러 데이터 세트를 동시에 반복해야하는 경우 유용함.

예1: nested for loop

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

예2: nested while loop

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

예3: nested for-of loop for arrays

const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
for(const value of array1){
    for(const value2 of array2){
        console.log(value1, value2);
    }
}

예4: nested for-in loop for objects

```js const obj1 = {a:1, b:2, c:3}; const obj2 = {d:4, e:5, f:6}; for(const key1 in obj1){ for(const key2 in obj2){ console.log(obj1[key1], obj[key2]); } }