카테고리 없음

거슬러 올라가는 루프, 루프안에 루프

하나둘세현 2023. 3. 20. 20:30
728x90

1. 한 배열을 거슬러 올라가 루프를 만든다.

2. 다른 루프 안에 또 다른 루프를 만든다. 

 

const jonas = [
  "Jonas",
  "Schmedtmann",
  2037 - 1991,
  "teacher",
  [("Michael", "Peter", "Steve")]
];

0 → Jonas

.

.

.

4 →  [("Michael", "Peter", "Steve")] 

 

이번에는 4번부터 0번까지 갈 예정이다. 

 

새로운 정보를 따라 for문을 만들어야 한다.

 

counter, 조건, counter 업데이트

for (let i = jonas.length - 1; i >= 0; i--) {
  console.log(jonas[i]);
}

let i = jonas.length -1;

counter로 다시 시작해보겠다. 그런다음 i라고 한다. counter의 초기값은 뭘까? 4이다. 그러나 4가 맞긴한데 적으면 안된다하드 코드된 값은 좋은 생각이 아니기 때문이다. 그렇다면 4는 무엇일까? 4는 기본적으로 배열의 길이이다. 5 -1 이다.

그러나 jonas.length로 작성한뒤에 -1을 해주겠다.

i >= 0

그리고 이 루프는 언제 멈출까? 0이 지나면 멈출거다. 작성해야 할 조건은 JS를 통해 어떤 조건에서 루프가 계쏙 실행되는지 알려주는 거다.  기본적으로 counter가 0이상인 한 루프는 계속 실행되어야 한다. 처음 나온 숫자 4에서 i는 0보다 크기때문에 이 조건은 참이 되고 다음 반복이 실행된다. 그런 다음 index(0~4)나 counter를 줄여야 한다. 

  i--

4에서 3으로 옮김으로 i--를 작성해줬다.

for (let i = jonas.length - 1; i >= 0; i--) {
  console.log(i, jonas[i]);
}

i를 counter를 하고 그런 다음 배열 값을 작성했다. 작성한 대로 배열 값이 4, 3, 2, 1, 0으로 추력되었다.


루프안에서 루프를 만드는 방법

for (let exercise = 1; exercise <= 4; exercise++) {
  console.log(`------Starting exercise ${exercise}`);

  for (let rep = 1; rep < 6; rep++) {
    console.log(`Lifting weight repetition ${rep}🏋`);
  }
}

15번을 반복해서 5번씩 3가지 운동을 한다고 가정해보겠다. 이 모든 운동을 고정시키려면 고리 안에 또 고리가 필요하다. 

 

for문의 첫번째만 놓고 봤을때 3가지 훈련은 있는데 반복되는 것은 하나도 없다. 그래서 다시 루프안에 루프를 만들어야하는 것이다. 그래야 오른쪽 사진처럼 반복된다. 

 

이렇게 루프가 완성되었다.

728x90