1. 이중 for문
for문 안에 for문이 들어가 중첩되어 있는 형태이다.
중첩의 횟수에 제한이 없기 때문에 다중 for문 또한 존재한다.
이중 for문의 개념을 이해하기에 좋은 예시로 구구단이 대표적이다. (2차원 배열에서도 많이 사용됨.)
구구단 : 2단부터 9단까지 출력
for (let i = 2; i <= 9; i++) { //2단부터 9단을 나타낸다.
for (let j = 1; j <= 9; j++) { //각 단에서 곱하는 수를 나타낸다.
console.log(i + '*' + j + '=' + i*j); //출력값 형태는 '2*1=2' 형태이다.
}
}
+ 이중 for문은 밖에 있는 for문이 1번 실행될 때마다 안에 있는 for문이 모든 반복을 실행하는 것이다. 그 후 밖에 있는 for문이 다시 실행되고 그 후로 반복되는 것이다.
2. 이중 for문 예제
1. 문자열에 등장하는 각 문자를 가지고 만들 수 있는 길이 2의 문자열들을 리턴
function makePermutations(str) {
let result = '';
for (let i = 0; i < str.length; i++) {
for (let j = 0; j < str.length; j++) {
result = result + str[i] + str[j] + ','
}
} return result.slice(0,-1);
}
2. 문자열에 중복된 문자가 존재하는지 여부를 리턴
function hasRepeatedCharacter(str) {
if (str.length === 0) {
return false;
}
for (let i = 0; i < str.length; i++) {
for (let j = i + 1; j < str.length; j++) {
if (str[i] === str[j]) {
return true;
}
}
}
return false;
}
3. 문자열을 처음부터 한 글자씩 다시 작성하는데,
한 글자를 추가할 때마다 부분적으로 완성된 문자열을 전부 이어붙인 문자열을 리턴
function makeMarginalString(str) {
let result = '';
for (let i = 0; i < str.length; i++) {
for (let j = 0; j <= i; j += 1) {
result = result + str[j];
}
}
return result;
}
3번 문제가 이해하기 어려웠다. str = 'abc'인 경우를 생각해보자. 리턴하는 값은 a, ab, abc가 도출되어 'aababc'가 된다.
i를 0부터 실행시키고 j는 i번까지만 반복시켜 i=0, j=0, i=1, j=0, 1 이런 식으로 반복하게끔 한다. i가 늘어남에 따라 j 값의 개수가 늘어나 str[j]를 result에 추가해주면 구할 수 있다.
'TIL 👩🏻💻' 카테고리의 다른 글
TIL : 배열, 객체 (0) | 2021.03.09 |
---|---|
TIL : Calculator (0) | 2021.03.08 |
TIL : CSS (0) | 2021.03.06 |
TIL : HTML (0) | 2021.03.05 |
TIL : 반복문 (0) | 2021.03.04 |