본문 바로가기
카테고리 없음

JavaScript - 이중for문 이해하기

by 윤뇽뇽

Day4. 나를 혼란에 빠뜨린 반복문

1-5(나)/6-10(페어님)/11-16(나)/17-21(페어님) 이렇게 문제를 번갈아 가며 풀었는데,

1-5번 풀 때까지만해도 반복문 자체가 이해가 안되어서 페어분께 계속 물어봤던 기억이 난다ㅋㅋㅋㅋ하...민폐갑;;

다행히 이날 나와 함께 해 주신 페어분께서는 전공자셨고 나의 개떡같은 질문에도 찰떡같은 답변을 해 주셨다👼

덕분에 11-16번 문제 풀 때에는 수월하게 진행했는데, 진짜 고난은 18번부터 시작된 이중반복문이었다. 하하^^

 

얼추(?) 이해하긴 했는데 내가 이해한 게 맞는지 모르겠어서 주말을 이용해 18-21번 문제를 혼자서 다시 풀어보았다.

그리고나서 21번 문제와 함께 내 식대로 정리해보는 이중 반복문(이중 for문) 문법

 

이중 for문

이해가 안될땐 도와줘요 구글센세!!

'자바스크립트 이중반복문'이라고 검색해보니 잘 정리된 블로그 글들이 정말 많았다.

 

이중 반복문은 말그대로 반복문을 두번 중첩해서 사용하는 것이다.

 

예를 들어 구구단을 출력할 때,

어떤 수에 1부터 9까지 곱하는 계산을 9번 반복하고,

이 계산을 2단부터 9단까지 8번 반복해야한다.

 

이럴 때 필요한 게 이중 반복문!

 

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

 

이 때 바깥쪽 for문을 실행하다가 한번 더 for문을 만나게 되면, 안쪽에 있는 for문을 먼저 실행시킨다.

i = 2일 때 : 2 * 1 / 2 * 2 / 2 * 3 / 2 * 4 / 2 * 5 / 2 * 6 / 2 * 7 / 2 * 8 / 2 * 9 (j가 1부터 9까지 반복된 후 loop종료)

 

안쪽 for문의 반복이 종료되고 나면 다시 바깥쪽의 for문이 실행된다.

i = 3일 때 : 3 * 1 / 3 * 2 / 3 * 3 / 3 * 4 / 3 * 5 / 3 * 6 / 3 * 7 / 3 * 8 / 3 * 9

i = 4일 때 : 4 * 1 / 4 * 2 / 4 * 3 / 4 * 4 / 4 * 5 / 4 * 6 / 4 * 7 / 4 * 8 / 4 * 9

.

.

이렇게 i = 9일때까지 반복문들이 중첩되어 실행되는 거라고 한다!

완전 이해 완료ㅎㅎ

반복문을 멈추고 싶다면 if와 break를 잘 활용해서 사용하면 된다고 한다.

 

* 이해하는 데 참고했던 블로그

 

[JS/반복문] 자바스크립트, 가장 기초적인 반복문 for문의 동작 원리 (for문/이중for문/break/continue)

어떤 언어에서든지 매우 중요하게 다뤄지는 반복문에 대해서 정리해보려고 한다. 1. for문 반복문은 어떤 동작을 여러 번 실행할 때 사용한다. 만약에 어떤 변수에 1부터 10까지 더한다고 생각해

im-developer.tistory.com

 

makeMarginalString(str)

코플릿 마지막 문제였던 makeMarginalString함수 작성!

만약에 str이 'love' 라면 llolovlove 요렇게 출력이 되게 만들어야 한다.

love의 인덱스가 0123이라고 생각했을 때, 아래와 같은 규칙으로 문자열을 추가해줘야한다.

 

i = 0일 때 : 0 입력
i = 1일 때 : 0 1 입력
i = 2일 때 : 0 1 2 입력
i = 3일 때 : 0 1 2 3 입력

 

그러면 이 문자열들이 추가될 변수 하나를 지정해 줘야 하고, (let string = ' '; 으로 변수 선언)

str의 인덱스를 입력해줄 for문이 하나 더 있어야 한다.

그렇게 만들어진 코드!

 

function makeMarginalString(str) {

  let string = '';
  for(let i = 0; i < str.length; i++){
    for(let j = 0; j <= i; j++){
      string = string + str[j];
    }
  }
  return string;
}

 

어우 뿌듯하당

댓글