Post

코틀린 기본3 - 흐름제어(if, when, for, while)

if문

코틀린의 if문표현식으로 사용할 수 있다. 즉, if문의 결과를 변수에 대입할 수 있다.

1
2
3
4
5
6
7
8
9
10
val age = 10
val str = if (age > 19) {
  "성인"
} else if (age > 7) {
  "어린이"
} else {
  "아기"
}
println(str) // 어린이

그리고 if문은 삼항연산자가 없고 대신 아래와 같이 사용할 수 있다.

1
2
3
4
val a = 1
val b = 2
// if문이 표현식이므로 삼항 연산자가 불필요
val c = if (b > a) b else a

when문

코틀린의 when 은 자바의 switch를 대체한다.
when문은 표현식으로도 사용할 수 있다. 즉, when문의 결과를 변수에 대입할 수 있다.

1
2
3
4
5
6
7
8
9
val day = 2
val result = when (day) {
  1 -> "월"
  2 -> "화"
  3 -> "수"
  4 -> "목"
  else -> "기타" // 값을 리턴하지 않는 경우, else는 생략 가능하다.
}
println(result) // 화

동일한 결과를 갖는 조건이 여러개인 경우 아래와 같이 콤마(,) 로 구분해서 표현할 수도 있다.

1
2
3
4
5
6
7
val day = 2
val result = when (day) {
  1, 2, 3, 4, 5 -> "주중"
  6, 7 -> "주말"
  else -> "기타"
}
println(result) // 주중

for문

코틀린에서 for문 은 편리한 기능들을 제공한다. 아래는 다양한 for문 사용 방식을 보여준다.

범위연산자(..)를 사용하여 반복 수행할 범위를 지정

1
2
3
4
// 1 <= i <= 10
for (i in 1..10) {
  println(i) // 1부터 10까지 출력
}

until을 사용하여 마지막 값을 제외한 범위를 지정

1
2
3
4
// 1 <= i < 10
for (i in 1 until 10) {
  println(i) // 1부터 9까지 출력
}

step을 사용하여 증가or감소 폭 설정

1
2
3
4
// 1 <= i <= 10, 증가폭 2
for (i in 1..10 step 2) {
  println(i) // 1, 3, 5, 7, 9
}

downTo를 사용하여 감소하는 범위 지정

1
2
3
4
// 10 >= i >= 1, 감소폭 2
for (i in 10 downTo 1 step 2) {
  println(i) // 10, 8, 6, 4, 2
}

배열 생성 및 반복

1
2
3
4
val number = arrayOf(1, 2, 3)
for (i in number) {
  println(number[i])
}

while문

코틀린의 while문 은 자바와 동일한 방식으로 사용된다.

1
2
3
4
5
var a = 5
while (a > 0) {
  println(a)
  a--
}
This post is licensed under CC BY 4.0 by the author.