본문 바로가기

프로그래밍 언어/코틀린_쌩초보를 위한 기초

쌩초보를 위한 기초_18_흐름 중단 break & continue

실행 중단 break : 조건이 맞으면 반복문을 즉시 끝낸다.

 

앞 글의 return에 이어서 코드 실행을 중단 하는 break 에 대해 알아본다.

복습을 겸하여 아래 for 반복문을 만들어 본다.

for 반복문의 매개변수 i는 integer(정수)의 첫글자를 따서 편의상 관습적으로 지은 것이다.

이미 알겠지만 변수명이므로 아무렇게나 지어도 되지만 코드의 맥락에 맞게 짓는 것이 상식이다.

어쨌든 for문은 변수i에 범위(in) 1부터 5까지를  순서대로 넣고 중괄호{} 내용을 실행하는 것을 반복하라는 코드다.

중괄호 실행 부분은 변수에 들어온 i값을 줄 바꿔가며 출력하는 println함수이다.

실행해서 확인 해보자.

 

이번에는 if조건문을 추가 해보자.

 

if조건의 i에 순서대로 넣어 조건을 비교하고 

조건에 맞지 않으면(false) 다시 돌아가 반복을 계속한다.

조건에 맞으면(true) 다음 줄 println(i)를 실행하고 탈출한다.

 

 

이제 if조건문을 만들고 i값이 3이면 break(반복 종료)하라는 코드를 추가해 보자.

종료 후 탈출했는지 확인하기 위해 중괄호 바깥에 문자열 출력 함수를 만든다.

if조건문을 만족할 때만 탈출한다.

break가 있는 부분에서 즉시 중괄호를 탈출한다.

 

이번에는 중첩된 반복문을 하나 만들어 본다.

실행하면 아래와 같은 순서로 작업을 한다.

 

  1. 변수ij는 문자열로 초기화 한다.
  2. 첫번째 반복문에서 제일 먼저 i에 1을 저장한다.
  3. 녹색중괄호를 실행한다.
  4. 두번째 반복문에서 j에 a를 저장한다.
  5. 빨간중괄호를 실행한다
  6. 변수 ij에 "1a"를 저장한다.
  7. 조건if  ( i는2 그리고 j는 'a' )가 거짓이므로 다음 줄(println)을 건너뛰고 탈출하여 녹색 조건문으로 간다.
  8. 중첩 반복문 이므로 i에1, j에b를 저장하고 ij에는 기존 ij(1a)에 1b가 더해져 1a1b를 저장한다. 
  9. 그 다음에 1a1b1c 그 다음은 1a1b1c2a가 되고 이때 i는 2 , j는a이므로 다음 if 조건에 맞기 때문에 변수 ij값을 출력하고 반복문을 탈출한다.
  10. 그 다음 break out of가 출력된다.

위 코드에 break를 넣으면 어떻게 되는지 확인해 보자.

break는 가장 가까운 반복문 블록을 중단한다.

위 코드는 if조건이 맞으면 즉시 빨간중괄호를 탈출해서 녹색중괄호 첫번째 for문으로 돌아간다.

중첩 반복이 계속 추가되다가 i, j에 2, a가 들어간 상태에서 첫번째 for문으로 돌아간다.

계속해서 2a2b, 2a2c가 포함된 부분은 빠지고 3a가 포함된 부분부터 계속 출력한다.

 

이번에는 앞에서 알아본 레이블(Label)을 사용해서 탈출 위치를 바꿔보자.

레이블을 추가하면 레이블의 범위 밖으로 탈출한다.

 

실행 중단 continue : 조건이 맞으면 반복문을 계속한다.

 

continue(계속)는 코드를 계속 진행하지 않고 다시 반복 조건으로 돌아간다.

break를 continue로 바꿔서 실행 해보자.

continue문도 위와 마찬가지로 레이블을 추가해서 탈출하는 위치를 바꿀 수 있다.

 

끝.