Today I Learned/TIL 05

2023 - 05 - 18 반복문 (for문, for~in문, while문, do while문, break문, continue문)

sangwoo_rhie 2023. 6. 1. 07:21

오늘 할일

자바스크립트 1주차 강의 듣기

 

오늘 배운 것

반복문 (for문, for ~in문, while문, do while문, break문, continue문) 

 

for문과 while 문에서의 if문을 통한 분기처리가 중요하다.

 

1. for문의 형태 

for(초깃값; 조건식; 증감식){
    //main logic
}

해석 : 
i라는 변수는 0부터 시작, 10에 도달하기 전까지 계속된다. 1사이클이 돌고나면 1을 더한다.

 

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

// 0 1 2 3 4 5 6 7 8 9




배열과 for문은 짝궁이다. 배열이 주어질 경우 항상 조건식에 length를 쓴다.

그냥 i 는 인덱스값이 몇번째인지만.

Arr[ i ]는인덱스값의 요소를 출력.

const Arr = ['one', 'two', 'three', 'four', 'five'];
for (let i = 0; i < Arr.length; i++) {
    console.log(i); 
    console.log(Arr[i]);
}

console.log(i);       / 0 1 2 3 4 (인덱스값이 몇번째인지만 출력)
console.log(Arr[i]);  /  one two three for five (인덱스값의 요소를 출력)



문제 : 0부터 10까지 수 중 2의 배수만 출력해보시오.

for (let i = 0; i <= 10; i++){
    if (i >= 2 && i % 2 === 0){
        console.log[i + "는 2의 배수입니다.");
    }
}

// 2는 2의 배수입니다.
// 4는 2의 배수입니다.
// 6는 2의 배수입니다.
// 8는 2의 배수입니다.
// 10는 2의 배수입니다.

여기서 console.log에서 인덱스가 몇번째인지가 아닌, 요소자체를 출력해야하므로 대괄호를 쓰는게 맞으나,
인덱스도 0부터 시작하고 요소도 0부터 시작해서 인덱스값이 요소와 동일하므로 대괄호 생략함.



2. for~ in문 (객체 속성을 출력)   =>  형태 : for (let key in 변수명)

let person = {
    name : "john",
    age : 30,
    gender : "male",
};

for (let key in person){
    console.log(key + " : " + person[key]);
}

객체의 value값을 출력하려면 : 객체 대괄호 열고 key입력. -> person[key]이런식으로.

// name : john
// age : 30
// gender : male

 

3. while문 형태

while (조건){
    main logic;
    증감식;
}
let i = 0;

while (i < 10) {
    console.log(i);
    i++;
}

// 0 1 2 3 4 5 6 7 8 9
let count = 0;
while (count < 5) {
  console.log(count);
  count++;
  if (count === 3) {
    break;
  }
}

// 0 1 2




while문을 활용해서 3초과 100미만의 숫자중 5의 배수를 출력하시오.

let i = 3;

while (i < 100) {
    if(i % 5 === 0 && i >= 5){
        console.log(i + "는 5의 배수입니다.");
    }
    i++;
}

// 5부터 95까지 다 나옴. ~는 5의 배수입니다.





4. do while문 형태

일단 한 번은 코드를 실행하고, 그 후에 조건식을 체크하여 반복 여부를 결정한다.

do{
    main logic;
    증감식;
} while (조건);


 // 코드 먼저 실행하고 while문 실행
let i = 0;

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

// 0 1 2 3 4 5 6 7 8 9


5. break문. break를 만나면 for문을 멈춘다. (break문과 continue문은 항상 for문과 함께 쓰임)

 

0부터 10까지 1씩 늘어나는 for문을 작성하되, 5가되면 멈추세요.

 

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

// 0 1 2 3 4

i가 5가 되면 break시켜라. break를 만나면 for문을 멈춘다.



6. continue문. continue문을 만나면 해당 조건은 스킵하고 넘어간다. 

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

// 0 1 2 3 4 6 7 8 9 10


i가 5가 되면 continue해라 (스킵해라.) 5만 스킵하고 다음으로 넘어감.