break
break 문은 반복문에서 break 문이 있는 현재 위치를 감싸고있는 반복문을 빠져나가기위해 사용한다.
위 코드를 보게 되면 이해하기가 훨씬 수훨할 것이다. while 문의 조건식이 true이니 출력문 1번이
출력되고 조건문인 if 문을 만나 조건식이 다시 true이기때문에 출력문 2번을 출력한다. 이 때,
break 문을 만나게되는데 결과값을 보니 출력문 3번이 출력되지않았다는 것을 확인할 수 있다.
이 때, 한 가지 착각을 할 수 있는데 break 문이 if 문 안에있어서 if 문을 반복문으로 착각하여
"if(){} 문을 벗어나겠구나!"라고 생각할 수 있다. 그런데 아니다! if 문은 조건문이지 반복문이
아니기 때문이다. 이 부분은 절대로 해깔려서는 안된다. 현재 가장 가까운 반복문은 while문 자체이므로
while문을 종료하고 마지막으로 4번 출력문을 만나게되어 출력한다.
다음 예제를 통해 break 문에 대해 정확히 이해하자!
[break 문 예제1] for 문을 이용하여 1~ 10까지 숫자중 1~ 4까지만 출력하세요.
1. 반복문의 횟수를 문제에서 알려주었기때문에 for 문을 이용한다.
2. 초기값은 1, 조건식은 i가 10이 될때까지 1씩 증가된다는 for 문의 조건식을 구성한다.
3. 이 때, 조건문 if 문을 이용하여 i가 5를 만나게되면 멈추는 break 문을 이용한다.
4. 맨 처음 설명했던대로 여기에서도 if 문을 반복문으로 착각하여 break 문이 있는 현재 위치를 확인하고
반복문을 완전히 빠져나가 종료한다는 사실을 이해한다.
[break 문 예제2] 이중 for 문을 이용하여 break 문에 대한 이해를 하세요.
이중 for 문에서는 바깥 for 문과 안쪽 for 문에 대한 이해를 바탕으로 안쪽 for 문에 조건문에 따라
j가 3일 경우, 참이면 break 문이 현재 위치한 반복문 바깥으로 빠져나간다는 사실을 이해한다.
결국 안쪽 for 문의 j가 3이되면 바깥 for 문으로 빠져나가기때문에 바깥 for 문이 1씩 증가하면서
안쪽 for 문은 2번씩 돌게된다는 사실을 알게된다.
[break 문 예제3] 이중 for 문과 label에 대한 예제
for 문의 조건식에 따라 안쪽 for 문으로 이동하게되는데, 보통 반복문 안에서 break 문을 만나게되면 최근접 반복문으로
빠져나가지만, break 문에 lable이 붙어있다면 최근접 반복문이 아닌 반복문 자체를 빠져나간다.
continue
1. continue 문은 반복문(for, while, do~ while)을 다시 시작하기 위해 사용된다.
2. continue 문을 사용하는 경우 가장 안쪽의 반복문을 둘러싼 현재 반복을 종료하고, 다음 증감식으로 이동하고 이후
조건식에 따라 반복(loop)를 실행을 계속한다.
3. break 문과 달리, continue 문은 전체 반복(loop)의 실행을 종료하지 않는다.
4. while 문에서는 continue 문을 만났을 때, 조건식으로 이동하고 for 문에서 continue 문을 만났을 때는 증감식
으로 이동한다.
다음 예제를 통해 continue 문에 대해 정확히 이해하자!
[continue 문 예제1] 1부터 10까지의 정수 중에 5만 출력하지마세요.
1. for 문의 초기값과 조건식에 의해 반복문의 반복(loop)을 한다.
2. i가 5가 되었을 때, continue 를 만나면서 증감식으로 이동하게 되고 출력없이 다시 반복문의 반복(loop)을
조건식의 마지막까지 실행한다.
3. i가 5가 되었을 때만 출력문을 실행하지 않았기때문에 위 그림과 같은 결과값이 출력된다.
[continue 문 예제2] continue 문을 이용하여 1부터 10까지의 숫자 중에 짝수만 출력하세요.
1. 짝수는 숫자 2로 나누었을 때, 나머지가 0인 수이며, 그렇기때문에 2로 나눈 나머지가 0이 아닌 수를 조건식으로 한다.
2. i가 초기값부터 조건식에 따라 반복(loop)을 하면서 증감식을 통해 1씩 증가하면서 2로 나눈 나머지가 0이 아닌 수,
즉 홀수인 수일 때 continue 문을 만나게 로직을 짜게되면 출력문에 오게되는 수들은 짝수인 수들로만 이루어진다.