for 안의 for, for 안의 if
for 안의 for
중첩 반복문.. 이라고 합디다
function getMaxSubSum(arr) {
let slowMax = 0;
for (let i = 0; i < arr.length; i++) {
let sumStart = 0;
for (let j = i; j < arr.length; j++) {
sumStart += arr[j];
slowMax = Math.max(slowMax, sumStart);
}
}
return slowMax
}
바깥의 for가 1번, 안쪽의 for가 2번이라 치면
일단 1번에 들어감 -> 그다음 2번 조건에 true면 들어가 ->
2번에서 false가 들때까지 계속 반복해서 돌음 ->
j < arr.length가 false가 되면 다시 1번으로 들어가 ->
다시 2번으로 -> 2번 false 뜰때까지 돌아 -> ...
-> 1번 i < arr.length가 false가 뜨면 이 중첩 반복이 끝난다.!
머... 먼소리야?
초- 악필다제.. 하지만 미래의 나에게 마음이 전해졌을거라 믿는다.
간단히 말하자면
조건이 맞으면 바깥의 for 속으로 들어간다 조건에 맞으면 안쪽의 for로 들어간다 ->
돌고나서 ++든 --든 처리가 끝나고 또 조건에 맞으면 다시 안쪽의 for가 돈다 ->
틀리면 이제 바깥의 for로 간다 -> 바깥 for 조건이 맞으면 다시 돈...
핵심은, '조건이 맞으면 돈다'..!! 조건 판단 후에 하는 증가, 감소는 그 '안쪽이 먼저 돌고나서' 작동한다
for 속의 if문
for (let i = 0; i < arr.length; i++) {
let value = arr[i];
if (value < a || value > b) {
arr.splice(i, 1); // index, 지울 개수, 추가할 내용
i--; // i--를 안넣으면 그 다음 arr[0]을 검사를 못해!!
}
}
}
filterRangeInPlace(arr, 1, 4);
alert(arr);
이거도 앞에꺼랑 원리는 똑같다
조건이 맞으면 들어가서 돈다
, 증가, 감소는 안쪽이 먼저 돌고나서 작동한다
조건이 맞으면 for문 안으로 들어간다 ->
value 초기화 ->
if문 조건에 맞으면 안으로 들어간다 ->
얜 반복문이 아니니까 끝까지 오면 i++ 후에 다시 for문을 돈다
Author And Source
이 문제에 관하여(for 안의 for, for 안의 if), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@saewoo1/for-안의-for-for-안의-if저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)