Kotlin 조건문 when 사용 방법 예제

Kotlin 에는 when이라는 조건문이 있습니다.

자바와 비교하면 switch문과 비슷합니다.

예제를 통해서 사용 방법을 알아보도록 하겠습니다.

 

자바 switch문으로 작성한 예제입니다.

public class test {
	public static void fruit(String value) {
		switch (value) {
			case "사과":
				System.out.println("Apple!");
				break;
			case "바나나":
				System.out.println("Banana");
				break;
			default:
				System.out.println(String.format("Unknown(%s)", value));
		}
	}

	public static void main(String[] args) {
		fruit("바나나");
		fruit("포도");
		fruit("사과");
	}
}

 

결과

Banana
Unknown(포도)
Apple!

 

코틀린 when 조건문으로 작성을 해보겠습니다.

fun fruit(value: String) {
	when(value) {
		"사과" -> println("Apple!")
		"바나나" -> println("Banana!")
		else -> println("Unknown($value)")
	}
}
fun main(args: Array<String>) {
	fruit("바나나")
	fruit("포도")
	fruit("사과")
}

 

결과

Banana
Unknown(포도)
Apple!

 

switch 대신에 when을 사용하고, case 대신에 ->을 사용했습니다.

위 예제에서는 변수 value와 비교하는 조건식을 생략해서 작성했지만, when에서는 조건식과 같이 사용할 수도 있습니다.

 

when과 조건식 예제

fun fruit(value: String) {
	when {
		value == "사과" -> println("Apple!")
		value == "바나나" -> println("Banana!")
		else -> println("Unknown($value)")
	}
}
fun main(args: Array<String>) {
	fruit("바나나")
	fruit("포도")
	fruit("사과")
}

 

결과

Banana
Unknown(포도)
Apple!

 

결과는 동일합니다.

그리고 when은 식이기 때문에 값을 반환할 수도 있습니다.

 

when 결과값 반환 예제

fun fruit(value: String): String {
	return when(value) {
		"사과" -> "Apple!"
		"바나나" -> "Banana!"
		else -> "Unknown($value)"
	}
}
fun main(args: Array<String>) {
	val fruit1 = fruit("바나나")
	val fruit2 = fruit("포도")
	val fruit3 = fruit("사과")

	println(fruit1)
	println(fruit2)
	println(fruit3)
}

 

결과

Banana
Unknown(포도)
Apple!

 

결과를 값으로 반환했습니다.

따로 결과값을 저장할 변수를 만들지 않아도 됩니다.

불필요한 처리를 하지 않아도 되기 때문에 소스도 깔끔하게 작성할 수 있습니다.

그리고 코틀린 when은 break를 작성하지 않아도 됩니다.

댓글