-
#JavaScript Grammar_반복문(for/while/break/continue)Javascript 2023. 10. 17. 16:05
# for 반복문이란?
for (초기값; 조건식; 증감식) { // 반복할 코드 }
- `초기값`: 반복문이 시작될 때 사용할 변수의 초기값을 설정함 . 이 값은 반복문이 시작되기 전에 한 번 실행됨.
- `조건식`: 매 반복마다 검사되는 조건임. 조건이 `true`인 동안 반복문이 실행됨.
- `증감식`: 각 반복이 끝날 때마다 변수의 값을 변경하거나 업데이트하는 역할을 함.
예를 들어, `for` 반복문은 초기값을 설정하고, 조선식을 검사하여 조건이 `true`인 경우 코드 블록 내의 명령문을 실행하며, 증감식을 통해 반복 횟수를 제어함.
# for 반복문
`for` 반복문은 반복 횟수가 정해진 경우나 배열과 함께 사용할 때 효과적
1) 기본적인 for 문
for (let i = 0; i < 10; i++) { console.log(i); } /*결과값: 0 1 2 3 4 5 6 7 8 9 */
- `i`를 0에서 시작하여 10보다 작을 때까지 반복함. 매 반복에서 `i` 값을 씩 증가시키며, 현재 `i`의 값을 출력함.
2) 배열과 함께 사용하는 for문
let numbers = [1, 2, 3, 4, 5]; for (let i = 0; i < numbers.length; i++) { console.log(numbers[i]); } /* 결과값: 1 2 3 4 5 */
- 배열 `numbers`와 함께 사용됨. `i`는 0에서 시작하여 배열 `numbers`의 길이 (`numbers.length`)보다 작을 때까지 반복하여, 각 반복에서 `i` 값을 증가시키며 배열 `numbers`의 각 요소를 `console.log()`를 통해 출력함.
3) for...in문 // for...in문은 주로 객체의 프로퍼티를 열거할 때 사용
let person = { name: "John", age: 30, gender: "male" }; for (let key in person) { console.log(key + ": " + person[key]); } /* 결과값: name: John age: 30 gender: male */
- 객체 `person`의 프로퍼티를 반복하여 출력함. `for (let key in person)`는 객체 `person`의 프로퍼티 이름을 `key` 변수에 할당하고, 해당 프로퍼티 이름과 값을 `console.log( )`를 통해 출력함.
+++ 4) `for...of`문(ES6 (ECMAScript 2015)에서 도입)// for...of문은 iterable 객체의 값을 순회할 때 사용
배열과 같은 반복 가능한(iterable) 객체를 순회할 때 사용됨.
배열의 요소나 문자열의 문자 등과 같이 반복 가능한 객체의 요소를 반복하면서 각 요소에 접근해야함.
let numbers = [1, 2, 3, 4, 5]; for (let number of numbers) { console.log(number); } /* 결과값: 1 2 3 4 5 */
- 배열 `numbers`의 요소를 반복하고 각 요소를 `number` 변수에 할당한 후 출력함.
- 반복 가능한 객체의 요소를 간단하게 반복할 때 매우 유용하며, 주로 배열, 문자열, 맵(Map), 세트(Set)등과 같은 iterable 객체와 함께 사용됨.
# for 반복문 적절한 사용예시
for 반복문은 특히 반복 횟수가 명확하거나 배열과 같은 데이터 구조를 순회할 때 적절하며, 초기값, 조건식, 증감식을 사용하여 반복 횟수를 제어합니다.
1. 반복 횟수 지정
for (let i = 0; i < 5; i++) { console.log(i); }
- 이 코드는 0부터 4까지의 숫자를 출력하는데 for 반복문을 사용함.
- 반복 횟수가 정해져 있으며 초기값, 조건식, 증감식을 사용하여 제어.
2. 배열 순회:
let numbers = [1, 2, 3, 4, 5]; for (let i = 0; i < numbers.length; i++) { console.log(numbers[i]); }
- 이 코드는 배열 numbers를 순회하며 각 요소를 출력하기 위해 for 반복문을 사용함.
- 배열의 길이를 사용하여 반복을 제어.
3. 객체 프로퍼티 접근:
let person = { name: "John", age: 30, gender: "male" }; for (let key in person) { console.log(key + ": " + person[key]); }
- 이 코드는 객체 person의 프로퍼티를 반복하여 출력하기 위해 for...in 반복문을 사용함
- 객체의 프로퍼티를 순회하는데 유용.
4. 중첩된 반복문:
for (let i = 0; i < 3; i++) { for (let j = 0; j < 3; j++) { console.log(`i: ${i}, j: ${j}`); } }
- 이 코드는 중첩된 for 반복문을 사용하여 2차원 배열이나 행렬과 같은 다차원 데이터 구조를 탐색하거나 복잡한 작업을 수행하는데 유용.
5. 데이터 처리와 최적화:
let data = fetchData(); // 어떤 데이터를 가져옴 for (let item of data) { processItem(item); }
- 이 코드는 for...of 반복문을 사용하여 데이터를 처리하며, 최적화된 방식으로 루프를 돌며 데이터를 처리함.
- for...of 반복문은 iterable 객체와 함께 사용.
# while 반복문이란?
while (조건식) { // 반복할 코드 }
- `조건식`: 매 반복마다 검사되는 조건임. 조건이 `true`인 동안 반복문이 실행됨.
- 조건식이 `true`인 동안 반복문을 계속 실행함. 조건이 `false`가 될 때까지 코드 블록 내의 명령문을 반복.
while 반복문
`while` 반복문은 조건이 `true`인 동안 계속해서 실행하는 상황에서 유용함.
let i = 0; while (i < 10) { console.log(i); i++; } /* 결과값: 0 1 2 3 4 5 6 7 8 9 */
- 위 예제는 `i`가 0부터 시작하여 10보다 작을 때까지 반복함.
- 각 반복에서 `i` 값을 출력하고, 그 후에 `i`값을 1씩 증가시킴.
while 반복문 적절한 사용예시
while 반복문은 조건이 만족되는 동안 반복을 지속하므로 조건이 변경되지 않거나 break문을 사용하여 반복문을 종료하는 것에 주의해야함.
1. 카운트다운 루프
let count = 10; while (count > 0) { console.log(count); count--; }
- 이 코드는 10에서 1까지 역순으로 카운트다운함.
- count 변수를 초기화하고, while 조건에서 count가 0보다 큰 동안 반복하며, 매 반복에서 count 값을 감소시킴.
2. 사용자 입력 처리
let userInput = ''; while (userInput !== 'quit') { userInput = prompt('계속하려면 "quit"을 입력하세요.'); }
- 이 코드는 사용자가 "quit"을 입력할 때까지 사용자의 입력을 계속해서 받음.
- while 조건에서 사용자 입력이 "quit"이 아닌 동안 반복함.
3. 무한 루프에서 조건 확인
while (true) { let userInput = prompt('종료하려면 "quit"을 입력하세요.'); if (userInput === 'quit') { break; } }
- 이 코드는 사용자가 "quit"을 입력할 때까지 메시지를 계속 표시함.
- 무한 루프 내에서 조건을 확인하여 break문을 사용하여 반복문을 종료.
4. 데이터 처리
let data = fetchData(); // 어떤 데이터를 가져옴 while (data.hasMoreItems()) { let item = data.getNextItem(); processItem(item); }
- 이 코드는 데이터를 가져와서 데이터에 더 많은 항목이 있는 동안 각 항목을 처리.
- while 반복문을 사용하여 데이터를 순회하며 각 항목에 작업을 수행함.
*** while 반복문은 조건이 만족되는 동안 반복을 지속하므로 조건이 변경되지 않거나 break문을 사용하여 반복문을 종료하는 것에 주의해야함.***
# do...while문
일단 한 번은 코드를 실행하고, 그 후에 조건식을 체크하여 반복 여부를 결정하는 반복문임.
let i = 0; do { console.log(i); i++; } while (i < 10); /* 결과값: 0 1 2 3 4 5 6 7 8 9 */
- 위 예제에서는 초기값 `i`를 0으로 설정하고, 일간 한 번은 루프를 실행함.
- 그 후에 `i`가 10보다 작은지를 케트하여 반복을 결정함.
- 각 반복에서 `i` 값을 출력하고, `i` 값을 1씩 증가시킴.
do...while 반복문 적절한 사용예시
do...while 반복문은 최소한 한 번 실행하고, 그 후에 조건을 검사하기 때문에, 반복문이 항상 실행되어야 하는 상황이나 사용자 입력을 받을 때 처음 한 번 실행하고 나서 조건을 검사해야 하는 경우에 적합
1. 메뉴 선택
let userChoice; do { displayMenu(); userChoice = getUserInput(); } while (!isValidChoice(userChoice));
- 이 코드는 사용자가 유효한 메뉴 항목을 선택할 때까지 메뉴를 반복해서 표시함
- do...while을 사용하여 메뉴가 적어도 한 번은 표시되며, 사용자 입력이 유효한 경우에만 루프가 종료됨.
2. 무한 루프에서 조건 확인
let userInput; do { userInput = prompt('계속하려면 "quit"을 입력하세요.'); } while (userInput !== 'quit');
- 이 코드는 사용자가 "quit"을 입력할 때까지 메시지를 반복해서 표시함.
- 무한 루프 내에서 조건을 확인하여 do...while 반복문을 종료함.
3. 데이터 처리
let data = fetchData(); // 어떤 데이터를 가져옴 let item; do { item = data.getNextItem(); if (item !== null) { processItem(item); } } while (item !== null);
- 이 코드는 데이터를 가져와서 데이터에 더 많은 항목이 있는 동안 각 항목을 처리함.
- do...while 반복문을 사용하여 데이터를 순회하며 각 항목에 작업을 수행함.
- item이 null이 아닌 동안 루프가 실행됨.
4. 사용자 입력 처리
let userInput; do { userInput = prompt('무엇을 하시겠습니까? (yes/no)'); } while (userInput !== 'yes' && userInput !== 'no');
- 이 코드는 사용자에게 "yes" 또는 "no"라는 유효한 응답을 받을 때까지 물어보는 반복 프롬프트를 생성.
- do...while 반복문은 최소한 한 번은 사용자에게 물어봄.
# break문
반복문을 종료하는데 사용됨.
예시) for문과 break문을 함께 사용
for (let i = 0; i < 10; i++) { if (i === 5) { break; } console.log(i); } /*결과값: 0 1 2 3 4 */
- 위 예시에서는 for문과 함께 break문을 사용하여 0부터 4까지의 숫자만 출력함.
- if문에서 i가 5일 때 break를 만나서 반복문을 종료함.
# break문의 적절한 사용법
1. 루프 종료: 특정 조건이 충족되었을 때 반복문을 종료하려면 break문을 사용함.
for (let i = 0; i < array.length; i++) { if (array[i] === targetValue) { break; // 배열에서 타겟 값 찾으면 루프 종료 } }
2. 무한 루프 제어: while나 do...while 루프에서 특정 조건에 도달했을 때 무한 루프를 종료하려면 break문을 활용.
while (true) { if (condition) { break; // 조건 충족 시 무한 루프 종료 } }
# continue문
continue문은 현재 반복을 건너뛰고 다음 반복으로 진행하는데 사용됨.
예시)아래는 for문과 continue문을 함께 사용
for (let i = 0; i < 10; i++) { if (i === 5) { continue; } console.log(i); } /* 결과값: 0 1 2 3 4 6 7 8 9 */
- 위 예제에서는 for문과 함께 continue문을 사용하여 5를 제외한 0부터 9까지의 숫자를 출력함.
- if문에서 i가 5일 때 continue를 만나서 해당 반복을 건너뛰고 다음 반복으로 진행함.
# continue문의 적절한 사용법
1. 특정 조건 건너뛰기: 반복 중에 특정 조건을 만족하는 경우 특정 반복을 건너뛰고 다음 반복으로 진행하려면 continue문을 사용함.
for (let i = 0; i < array.length; i++) { if (array[i] < 0) { continue; // 음수인 경우 현재 반복 건너뛰고 다음 반복으로 진행 } // 양수인 경우 작업 수행 }
2. 루프 중간에서 특정 작업 건너뛰기: 반복문 내에서 특정 작업을 건너뛰어야 하는 경우 continue문을 사용함. 예를 들어, 특정 인덱스에서 작업을 스킵하고 다음 인덱스에서 작업을 계속할 수 있음.
for (let i = 0; i < array.length; i++) { if (i === skipIndex) { continue; // 특정 인덱스 스킵 } // 작업 수행 }
3. 복잡한 조건의 중단: 반복문 내에서 조건이 복잡하게 구성되어 있고 일부 조건을 충족하지 않는 경우, 해당 조건을 만족하지 않으면 continue문을 사용하여 다음 반복으로 이동함.
for (let i = 1; i <= 10; i++) { if (i % 2 === 0) { // 짝수인 경우 건너뜁니다. continue; } console.log(i); // 홀수만 출력됨 }
'Javascript' 카테고리의 다른 글
#JavaScript Grammar_일급 객체로서의 함수 (0) 2023.10.19 #JavaScript Grammar_ES6문법 (1) 2023.10.19 #JavaScript Grammar_배열 (2) 2023.10.17 #JavaScript Grammar_객체 (1) 2023.10.16 #JavaScript Grammar_조건문(2) 중첩 (1) 2023.10.16