본문 바로가기
부트캠프교육중/JavaScript

[JS] 반복문

by 뭉지야 2022. 12. 19.
728x90

반복문- for문, while문
불필요한 코드를 반복적으로 사용하지 않고 간결하게 코드를 작성할수 있습니다.
--------------------------------
<for문>
1부터 5까지의 합
-> let result = 0;
 result = result + 1;
result = result + 2;
result = result + 3;
result = result + 4;
result = result + 5;
console.log(result); // 15

->
let result = 0;
for (let num = 1; num <= 5; num++) {
result = result + num;
}
console.log(result); //15
->위의 코드 진행순서
1. for문 내부에 num이라는 변수를 선언하고 1이라는 초기값을 할당한다.
2. 변수 num이 5보다 작거나 같은지 확인한다.
3. 2의 결과가 true면 밑의 코드를 실행한다
4. 변수 num을 1증가시킨다.
5. 2부터 4까지 반복한다.
6. 2의 결과가 false면 반복문이 종료된다.

for (초기값; 조건식; 증감식) {
     // 실행할 코드}

초기값: 증감식 반복횟수를 카운트하는 역할을 하는 변수. 반복문의 코드블록 내부에서만 유효하다.
조건식: 코드블록 내부의 코드를 실행여부를 결정한다.  
증감식: 코드블록 내부의 코드를 실행한 후 초기값으로 선언된 변수를 증가 또는 감소시키기 위한 표현식

#0부터 10까지의 숫자를 출력하는 코드를 반복문으로 작성하세요.
for (let i = 0; i <= 10; i++) {
console.log(i);}
----------------------------------------------------
<반복문 활용하기>
->let num = 3;
if (num >= 2 && num <= 9) {
console.log(num * 1);
console.log(num * 2);
console.log(num * 3);
console.log(num * 4);
console.log(num * 5);
console.log(num * 6);
console.log(num * 7);
console.log(num * 8);
console.log(num * 9);
} else {
console.log('2와 9사이의 수를 입력하세요.');}

-> let num = 3;
if (num >= 2 && num <= 9) {
for (let i = 1; i <= 9; i++) {
console.log(num * i);
}
} else {
console.log('2와 9사이의 수를 입력하세요.');}

<문자열과 반복문>
인덱스(index)
let str = 'codestates';
console.log(str[0]); // c
console.log(str[4]); // s

특정문자의 인덱스를 확인하는 메서드는 indexof()이다
let str = 'codestates';
console.log(str.indexof('c')); // 0

만약 찾는 문자가 2개 이상일 경우, 가장 앞에 있는 문자의 인덱스를 조회한다.

let str = 'codestates';
console.log(str.indexOf('c')); // 0
console.log(str.indexOf('e')); // 3



#문자열의 마지막 문자의 인덱스는 문자열의 길이보다 1만큼 작다.
문자열 codestates의 길이는 10이다. 0부터 시작하는 인덱스와는 달리, 길이는 말 그대로 문자열에 속한 문자의 개수를 나타낸다.
i <= str.length - 1
i < str.length

->
 let str = 'codestates';
for (let i = 0; i <= 9; i++) {
console.log(str[i]);}

->
let str = 'codestates';
for (let i = 0; i <= str.length - 1; i++) {
console.log(str[i]);}
---------------------------------------------------------------------------------
<반복문과 조건문>
반복이 진행되는 동안, 특정 조건에 따라 문제를 해결하도록 코드를 작성해야한다면
반복문과 조건문이 함께

#1부터 10까지의 숫자 중 홀수만 출력하도록 코드를 작성하세요
for (let i = 1; i <=10; i++) {
//조건문을 이용해서 홀수만 출력하도록
if (i % 2 === 1) {
console.log(i);}
}

# i가 홀수인지, 짝수인지 여부를 확인하고 싶다면
for (let i = 1; i <= 10; i++) {
if (i % 2 === 1) {
console.log(`${i}는 홀수입니다.`);
} else {
console.log(`${i}는 짝수입니다`);}
}

#주어진 문자열의 문자들 중, 인덱스가 짝수인 문자만 출력하도록 코드를 구현하세요
let str = 'software engineering bootcamp';
 //문자열의 모든 문자를 순회하도록 for문 먼저 작성
 // 짝수 조건 넣고 if문
for (let i = 0; i < str.length; i++) {
if (i % 2 === 0) {
console.log(str[i]);}
}

-----------------------------------------------------
<반복문의 중첩>
반복문 내부에 또 다른 반복문을 사용할수 있다

반복문의 중첩이 필요한 경우에는 while문 보다 for문의 사용이 더욱 권장된다.!

# for (let i = 1; i <= 3; i++) {
for (let j = 1; j <= 3; j++) {
console.log(`첫번째 주사위는 ${i}, 두번째 주사위는 ${j}입니다.`);
}
}
-> 첫번째 주사위는 1, 두번째 주사위는 1입니다.
첫번째 주사위는 1, 두번째 주사위는 2입니다.
첫번째 주사위는 1, 두번째 주사위는 3입니다.
첫번째 주사위는 2, 두번째 주사위는 1입니다.
첫번째 주사위는 2, 두번째 주사위는 2입니다.
첫번째 주사위는 2, 두번째 주사위는 3입니다.
첫번째 주사위는 3, 두번째 주사위는 1입니다.
첫번째 주사위는 3, 두번째 주사위는 2입니다.
첫번째 주사위는 3, 두번째 주사위는 3입니다.

이처럼 외부 반복문의 초기화와 조건식 평가가 이루어진후, 내부 반복문이 시행됩니다.

반복문은 두개 이상 중첩 가능하다. 2개의 반복문이 중첩되면 이중반복문, 3개면 삼중반복문
#
for ( let first = 0; first <= 3; first++) {
  for( let second = 0; second <= 3; second++) {
     for(let third = 0; third <= 3; third++) {
       console.log(
           `first는 ${first}, second는 ${second}, third는 ${third}입니다.` );
     }
   }
}

#이중반복문으로 구구단 출력해라
for (let i = 1; i <= 9; i++) {
console.log(`${i}단`);
  for(let j = 1; j <= 9; j++) {
  console.log(`${i} x ${j} = ${i * j}`);
  }
}
---------------------------------------------------
<while문>

조건식만 입력한후 조건식의 평가결과가 true인 경우 코드블록 내부의 코드를 반복하여 실행한다.

let num = 0;
while (num < 3) {
console.log(num);  // 0 1 2
num++ }

위 코드를 for문으로 바꾸면
for (let num = 0; num < 3; num++) {
console.log(num);  // 0 1 2

}
무한히 반복되는 현상 조심해야한다.

let num =1;
while(num >0) {
  console.log(num);
  num ++;
  }


무한루트가 발생하지 않도록 false로 평가되는 순간이 있는지 확인해야한다.

<do while문>
while뒤에 오는 조건식이 true로 평가되는 동안 do 뒤에 오는 코드를 반복하여 실행한다. 

do {
console.log('코드블록 내부의 코드는 최소 한 번은 실행됩니다.') 
// '코드블록 내부의 코드는 최소 한 번은 실행됩니다.'
} while (false)



<for문과 while문 차이>
for문을 사용하는경우

-반복 횟수가 비교적 명확할때

-배열, 문자열 내부를 순회할때

-반복문의 중첩이 필요할때

while문을 사용하는 경우

-반복 횟수가 명확하지 않을때

728x90

'부트캠프교육중 > JavaScript' 카테고리의 다른 글

[JavaScript] 배열이란?  (0) 2022.12.30
[JS] 함수  (0) 2022.12.19
3-1(조건문)  (0) 2022.12.19
[JS] 변수  (0) 2022.12.16
[JS] 코드와 타입  (0) 2022.12.16