조건식 (if, when)

황승현·2023년 12월 7일
0

코틀린 강의 정리

목록 보기
12/36
post-thumbnail

조건식

조건에 맞는 코드만 실행

if-else 구조

  • 간단한 조건문이 필요할 때 사용
  • 최악의 경우 모든 조건을 비교하게 됨

기본 구조

// 조건식은 앞서배운 비교 연산자를 사용합니다
// 즉, 조건식 자리에는 true 또는 false의 결과가 들어갑니다
// 조건식이 true일때 중괄호 안의 코드를 실행합니다
if(조건식) {
	 // 실행할 코드
}


// 둘 중 한개의 코드만 실행됩니다
if(조건식) {
	// 조건식이 true일때 실행할 코드
}
else {
  // 조건식이 false일때 실행할 코드
}

// 셋 중 한개의 코드만 실행됩니다

if(조건식) {
	// 조건식이 true일때 실행할 코드
}
else if(다른 조건식){
	// if조건문이 false이고, 다른 조건식이 true일 때
}
else {
  // 모든 조건식이 false일때 실행할 코드
}
  • 예제

var a = 10

if(a >= 15) {
	 println("크다.")
}
else{

	// a는 15보다 작으므로 이 부분이 출력
	println("크지 않다.")
}
  • if문 축약
fun maxOf(a: Int, b: Int) = if (a > b) a else b

when 구조

  • else if가 많을 때 사용

  • if와 달리 하나만 선택하도록 설정 가능

  • 기본 구조

when(변수 또는 상수) {1 -> {
    	// 실행할 코드
   }2 -> {
   		// 실행할 코드
   }
   
   //경우에 따라 중괄호를 생략할 수 있다.3 -> //실행할 코드
   
   //여러개를 한번에 검사할 수 있다.4,5,6 -> {}
   
   else -> {
   		// 실행할 코드
	 }
}

when 예제

var a = 10

when(a){
	1 -> {
    	println("1입니다.")
    }
    5 -> {
    	println("5입니다.")
    }
    7 -> {
    	println("7입니다.")
    }
    else{
    	// a는 1,5,7이 아니므로 이 부분이 출력
    	println("아무 것도 아닙니다.")
    }
    
}

when 예제2

fun main() {
    val test = "abcsdf"
    val result = when(test.length){
        in 0..3 -> "짧음"
        4,5,6 -> {"적당함"}
        else -> "길다"
    }
    println(result)
}

when 예제3

fun main() {
    val test = "abcsdf"
    val result = when(test.length){
        in 0..3 -> "짧음"
        4,5,6 -> {"적당함"}
        else -> "길다"
    }
    println(result)
}

인자가 없는 when

  • when은 불필요한 가비지 객체가 늘어나는 것을 방지하기 위해, 인자를 생략할 수 있다.
when{
	조건식1 -> {
    	// 실행할 코드
   }
   
   //경우에 따라 중괄호를 생략할 수 있다.
   조건식2 -> // 실행할 코드
   
   
   //경우에 따라 괄호를 붙일 수 있다.
   (조건식3) -> // 실행할 코드
    
   else -> {
   		// 실행할 코드
	 }
}

인자가 없는 when 예제

fun main() {
    var a = 15
    
    var test = when{
        (a == 10) -> {"a는 10이다."}
        else -> "a는 10이 아니다."
    }
    println(test)
}

인자가 없는 when 예제2

fun main() {
    println(test(15))
}

fun test(num:Int) = when{
    (num%2==0) -> "짝수다"
    else -> "홀수다"
}

인자가 없는 when 예제3

fun main() {
    for (i in 0..30){
        println(fizzBuzz(i))
    }
}

fun fizzBuzz(num: Int) = when{
    num%15==0 -> "FizzBuzz"
    num%3==0 -> "Fizz"
    num%5==0 -> "Buzz"
    else -> "${num}"
}

0개의 댓글