Javascript

루프? 반복적으로 시행한다고? 엄..그래..

변기원 2021. 12. 8. 00:23

Loop: 루프는 어떤것을 반복적으로 시행할때 빠르고 간편한 방법을 제공한다라..

뭘 계속 손으로 쓰는게 비효율적이거나 불가능할 만큼 여러번 반복할때 한번으로 끝내는 것을 말하는 것 같은데, 좀 더 사람언어로 알아보자

 

1. while 문

  while 안에 조건이 true이면 body code 가 실행된다. 이거는 조건을 먼저 확인한다. 조건이 참이면 그 후에 반복문 실행

i = 3;
while(i>0){
console.log(`while: ${i}`)
i--;
}

  i가 3에서 시작. while i가 0보다 크면  while:${i}  출력되고 i 가 1씩 감소됨. 

 

2. do-while 문

  일단 반복문이 한번 먼저 실행되는 차이가 있음. 그리고 나서 조건문을 확인한다. 참이면 다시실행, 거짓이면 do while문 다음으로 넘어감.

 

do{

console.log(`do while: ${i}`);

i--;

} while (i>-2);

 

  do while: ${i} 가 먼저 출력되고 1씩 줄어들면서 while 안에 조건문 확인, -2보다 클때(-1까지) 반복됨.

 

3. for 문

for([초기문][조건문][증감문]){

body code};

조건문이 참일때 초기문부터 시작해서 조건문이 false가 될때까지 반복한다.

 

for (let i = 3; i>0; i--){

console.log(`inline variable for:${i}`);

}

 

i가 3으로 시작해서 0보다 클때까지 반복되는데 i는 1씩 작아짐. 3,2,1 까지 실행되겠지?

그래서 inline variable for: 3 / inline variable for: 2 / inline variable for: 1 이케 출력 되겠지?

넘쉽다 근데 이걸 어디다 쓸지 궁금했는데

 

다음에 nested loop를 보고 뭔가 해보고 싶어졌다.

 

4. nested loop

 

for (let = 0; i<10; i++){

  for(let = 0; i<10; i++){

    console.log( i , j );

 }

}

이걸 쳐보니 

nested loop연습 콘솔화면

이런게 나오는데 구구단이 나오게 만들어보고싶은 마음이 절로 들쥬?

3 * 3 = 9

3 * 4 = 12 이렇게 나오게 만들고 싶은데 

for (let i = 1; i < 10; i++) {
for (let j = 1; j < 10; j++) {
console.log(i + "*" + j + "="(i * j));
}
}

나한테 왜그래?  = 이거는 함수가 아니라고? 

ㅋㅋㅋㅋㅋ아 + 이거를 안넣어서 ... 항상 string, number, boolean 등 생각하고 있어야 저런 실수를 안할수 있겠다.

근데 저거를 함수로 인식한다고? 괄호가 있으면 함수식일거라고 판단하는건가..

for (let i = 1; i < 10; i++) {
for (let j = 1; j < 10; j++) {
console.log(i + "*" + j + "=" + i * j);
}
}

편안..

 

5. 마지막 엘리 선생님 quiz!

  a. continue 와 break를 이용하여 0부터 10까지 반복하면서 짝수만 출력하기

  b. continue 와 break를 이용하여 0부터 10까지 반복하면서 8에 도달하면 멈추기

 

[continue 문은 현재 또는 레이블이 지정된 루프의 현재 반복에서 명령문의 실행을 종료하고 반복문의 처음으로 돌아가여 루프문의 다음 코드를 실행합니다.] 한국말로 알아볼까?

 

for (i = 1; i < 11; i++) {
  if (i % 2 == 1) {
    continue;
  }
  console.log(i);
}

 1부터 10까지 반복하는데 만약에 i를 2로 나눠서 나머지가 1이면(홀수면) continue해라. 명령문 실행 종료하고(console.log(i) 실행하지말고) 반복문의 처음으로 돌아가여 루프문의 다음코드 실행(for 문 다시 시작해라)

이런 말 인것 같다. 

 

for (i = 0; i < 11; i++) {
  if (i >= 8) {
    break;
  }
  console.log(i);
}
마찬가지로 0부터 10까지 반복하는데 만약 i가 8보다 크거나 같으면 멈춰라. 이건쉽다. 8전에는 console.log(i) 계속 실행하다가 8 만나면 멈추라는 것