[Kotlin] 제어문

PUJIN·2023년 6월 7일
0
post-thumbnail

코드의 흐름은 위에서 아래로 진행하지만 흐름을 변경하고자 할 때 제어문 사용

IF문


if(조건식) { } else if(조건식) { } else { }

주어진 조건에 따라 코드 수행 여부를 결정하는 구문

  • 수행 코드가 1줄이라면 { } 생략 가능
  • 각 코드블럭 내에서 마지막 값이나 변수의 값을 변수에 저장 가능
val a1:String = if(a3 == 1) {
	var a2: String = ""
    a2 += "a1은 "
    a2 += "1입니다."
    a2
} else {
    var a2:String = ""
    a2 += "a1은 "
    a2 += "1이 아닙니다."
    a2
}

// a3=1인 경우 → a1 : a1은 1입니다.
// a3=1이 아닌 경우 → a1 : a1은 1이 아닙니다.
println("a1 : $a1")  



When


when(변수 or 수식) {
  값 -> 코드
  값 -> 코드
  else -> 코드
}

수식이나 값의 결과에 따라 수행될 부분 결정하는 구문

  • 정수 뿐만 아니라 다양한 타입의 값 비교 가능 (논리값 설정 불가능)
  • 자동 중단 (break 자동 생성, 사용 X)
  • 수행 코드가 1줄이라면 { } 생략 가능
  • 2가지 이상의 조건을 만족하는 경우 설정 가능
val a1 = 3
when(a1){
	1, 2 -> println("a1는 1이거나 2입니다")
    3, 4 -> println("a1는 3이거나 4입니다")  // 코드 실행
    5, 6 -> println("a1는 5이거나 6입니다")
    else -> println("a1는 1, 2, 3, 4, 5, 6이 아닙니다")
}
  • 범위 지정 가능
val a1 = 5
when(a1){
  in 1..3 -> println("a1는 1부터 3사이입니다")
  in 4..6 -> println("a1는 4부터 6사이입니다")  // 코드 실행 후 break
  in 1..6 -> println("a1는 1부터 6사이입니다")  // 코드 실행 X
  else -> println("a1는 1 ~ 6사이의 숫자가 아닙니다")
}
  • 각 코드블럭 내에서 마지막 값이나 변수의 값을 변수에 저장 가능
var setValue = when(a1){
	1 -> "1"
	2 -> {
    	println("a1은 $a1입니다.")
    	"2"
	}
	else -> "1, 2가 아닙니다."
}

// a1 = 1 → setValue : 1
// a1 = 2 → setValue : 2
// a1 = 3 → setValue : 1, 2가 아닙니다.
println("setValue : $setValue")



For문


값을 관리하는 요소를 이용해 관리하는 값의 개수만큼 코드를 반복하는 구문

for (변수 in 배열) { }

  • 변수는 타입을 정하지 않아도 된다.
    • .. : 좌측 값 ≤ 변수 ≤ 우측값
    • until : 좌측 값 ≤ 변수 < 우측값
    • step : 증가 값 설정
    • downTo : 좌측 값 ≥ 변수 ≥ 우측값



while문


주어진 조건이 만족할 경우 반복하는 구문

while(조건식) { }

  • 조건식이 거짓이면 단 한번도 수행 X



do while문


주어진 조건이 만족할 경우 반복하는 구문

do {
 수행 코드
} while(조건식)

  • 조건식이 거짓이어도 처음 한번은 수행



반복문 제어


* retrun

  • 현재 수행중인 함수를 종료하는 구문
    • 수행할 코드가 남아있어도 함수를 종료하고 호출한 부분으로 돌아간다.
    • 반환값이 있을 경우 return 뒤에 작성

* break

  • 가장 가까운 반복문 종료하는 구문
    • 반복 횟수가 남아있어도 종료

* continue

  • 다시 반복문의 윗부분으로 올라가는 구문
    • 이후의 코드가 남아있어도 다음 반복으로 다시 진행

0개의 댓글