4 min to read
루프(loop)
루프
루프는 특정 조건이 충족될 때까지 코드블록을 반복하는 기본 프로그래밍 구성임.
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]); } }