[javascript,python] 이중 for문 탈출

Joooooooo·2021년 8월 11일
1

공통

목록 보기
1/1

[개요]

코딩을 하다보면 가장 흔하게 쓰는 문법중 하나가 for문이라고 생각됩니다.
필요에 따라 for문을 중첩으로 사용하는 경우도 생기는데, 이때 자바스크립트와 파이썬에서 이중for문을 탈출하는법을 알아보겠습니다.!

[설명]

1.자바스크립트

이중 for문을사용하기전 배열을 두개 생성하도록 하겠습니다.

var arr1 = [1,2,3,4];
var arr2 = [11,22,3,44];
var arrLen1 = arr1.length;
var arrLen2 = arr2.length; 

우선 두 개의 배열을 생성했습니다.
그리고 각 배열의 length또한 arrLen1,arrLen2 변수에 할당했습니다.
for문안에서 직접적으로 length사용시 반복이 될때마다 스코프 체인의 활성화 객체를 거치게 되서 응답속도가 느려질 수 있습니다.
이 부분은 추후에 다루도록 하겠습니다.

이 두가지 배열의 요소들을 검사해 arr1의 요소와 arr2의 요소가 일치한다면 for문을 빠져나오도록 하겠습니다.

outerFor : for(var i=0; i < arrLen1; i++) {
	innerFor : for(var j=0; j < arrLen2; j++) {
    	if(arr1[i] == arr2[j]) break outerFor;
    }
}

상단의 코드와 같이 for문 앞에 label을 붙여주어 break시 해당 for문을 빠져나올수 있도록 할 수 있습니다.

2.파이썬

arr1 = [1,2,3,4]
arr2 = [11,22,3,44]

for arr1_idx, arr1_val in enumerate(arr1):
    for arr2_idx, arr2_val in enumerate(arr2):
        if arr1_val == arr2_val:
            print("탈출")
            break
    else:
        continue
    break

위의 코드에 대해 설명을 하자면
파이썬에서는 for문도 else문을 사용할 수 있습니다.
여기서 else문은 안쪽 for문에 반복될 요소가 더이상 없을때 continue를 통해 바깥for문이 실행되게 합니다.
즉 바깥for문 첫번째요소-> 안쪽for문 11,22,3,4 체크후 바깥 for문 두번째 요소로 넘어가게 됩니다.
안쪽 for문에서 break를 만나게 되면 해당 안쪽 for문(else문 포함)은 종료되게 되고 젤 하단부분의 break를 만나 2중 for문을 탈출하게 됩니다.

[마치며..]

구글링을 통해 for문에 사용가능한 여러 테크닉들을 보며 항상 사용하는데도 아는것이 별로 없는것에 대한 반성을 하게되었습니다.! 이상입니다

profile
1일1커밋이 목표입니다!

0개의 댓글

관련 채용 정보