ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #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 반복문을 사용하여 데이터를 순회하며 각 항목에 작업을 수행함.

    - itemnull이 아닌 동안 루프가 실행됨.

     

    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. 무한 루프 제어: whiledo...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
Designed by Tistory.