코딩을 아는 사람에게 반복문을 물어본다면,
대부분의 사람들이 먼저 for 구문에 대해 설명을 할 것이다.
사실 영어(loop)나 한글(반복)이나 둘다 위의 이미지 처럼 무한의 굴레라
for보단 while에 가깝긴하다.
오늘은 이 for와 while 중에서도 break에 관한 이야기를 하고자 한다.
이전에도 case에 관련한 break에 대해 이야기를 했지만,
오늘은 반복문에 관한 break이다.
(물론 둘다 역할은 같다.)
while에서는 거의 필수이지만, for에서는 그렇지 않은 break는
내가 알고 있는 java나 python 모두 그렇다.
하지만, 오늘 break 사용에 대한 차이를 하나 알았다.
이전에 python에서 다중 for 구문 안에서 가장 바깥의
for를 탈출 하려면 임시적인 변수를 활용하여 탈출 할 수밖에 없다.
예를 들어
for i in range(100):
for j in range(100):
if j == 50:
print(i, j)
break
라고 두었을때,
결과는
0 50
1 50
2 50
...
99 50
x = false
for i in range(100):
for j in range(100):
if j == 50:
print(i, j)
x = true
break
if x: break
이렇게 짜야 한다.
현재로썬 물론 귀찮다거나 복잡하다는 등의 문제가 발생하지 않지만,
for 가 중첩될 수록 그러한 문제는 발생할 수 있다.
java의 경우 또한 python처럼 해결할 수 있지만,
오늘 다중 for문을 break 하는 방법을 알았다.
public class Main{
public static void main() {
Outer: for (int i=0; i<100; i++){
for (int j=0; j<100; j++){
if (j==50) {
System.out.println(i+" "+j);
break Outer;
여기서 바깥 for 구문 앞에 Outer: 부분과
break 다음의 Outer; 부분을 보면 쉽게 이해 할 수 있을 것이다.
이렇게 사용한다면,
for가 중첩이 되더라도, 원하는 부분을 쉽게 탈출 할 수 있을것이다.