Sam Story

Kotlin 조건문 본문

Kotlin

Kotlin 조건문

Sam H 2024. 2. 2. 19:13

Kotlin의 조건문 if-else 와 when

if-else 구문은 프로그래밍을 하는 사람들이라면 굉장히 익숙한 조건문이다.

when 의 경우는 자바에서 쓰이는 switch 구문과 비슷하다.

 

코드를 보며 조건문에 대해서 알아보도록하자.

 

 

 

1. if-else 문

if-else 의 경우 if (조건식) { 실행할 코드 }를 기본 구조로 한다.

 

여기서 주의해야 할건 조건식의 결과는 무조건 true or false 이어야 한다는 점이다.

 

조건식의 내용이 true 인 경우 중괄호 안에 코드를 실행하게 된다.

조건식의 내용이 false인 경우 if문 뒤에 있는 else{ 실행할 코드 } 가 실행된다.

 

아래 코드를 보면 좀더 직관적으로 알 수 있다.

fun main(){

   // 이름 이라는 변수에 sam 이라는 값을 할당해 주었다.
   var name:String = "sam"

   if(name.equals("sam")){ // name 의 값이 "sam"과 일치할 경우 중괄호 안에 코드를 실행
   
   println("이름이 일치합니다.")

   }else{ // name 의 값이 "sam"과 일치하지 않을 경우 중괄호 안에 코드를 실행
   
   println("이름이 일치하지 않습니다.")

   }
}

 

위 코드를 실행하게 되면

 

if 문 조건식 안에 조건이 true 이므로 if문 중괄호 안에 있는 코드가 실행되게 된다.

 

그리고 이 코드를 좀더 간단하게 나타낼 수 있는데

fun main(){

   // 이름 이라는 변수에 sam 이라는 값을 할당해 주었다.
   var name:String = "sam"

   if(name.equals("sam")) println("이름이 일치 합니다.") else println("이름이 일치하지 않습니다")

}

 

간단한 조건의 경우에는 위 코드와 같이 한줄로도 표현할 수 있다.

 

2. if - else if - else 문

if - else if - else 의 경우는

 

if문의 조건을 만족하지 않으면 바로 else의 코드를 실행하는게 아니라

else if 의 조건을 만족하는지 한번더 확인하기 위한 구문이다.

 

코드를 보면 보다 이해하기 쉽다.

위에서 사용한 예제를 조금 수정했다.

fun main(){

   // 이름 이라는 변수에 sam2 이라는 값을 할당해 주었다.
   var name:String = "sam2"

   if(name.equals("sam")){ // name 의 값이 "sam"과 일치할 경우 중괄호 안에 코드를 실행
   
   println("이름이 sam 입니다.")

   } else if(name.equals("sam2")){ // name의 값이 "sam2"와 일치할 경우 중괄호 안에 코드를 실행
   
   println("이름이 일치합니다.")
   
   } else{ // name 의 값이 "sam"과 일치하지 않을 경우 중괄호 안에 코드를 실행
   
   println("이름이 일치하지 않습니다.")

   }
}

 

위코드를 실행하게 되면

 

else if 중괄호 안에 코드가 실행된 결과값이 출력된다.

 

if - else if - else 문의 경우도 if - else 문에서 했던것처럼 한줄 코드로도 나타낼 수 있다.

fun main(){

   // 이름 이라는 변수에 sam2 이라는 값을 할당해 주었다.
   var name:String = "sam2"
   
   if(name.equals("sam")) println("이름이 sam 입니다") else if(name.equals("sam2")) println("이름이 일치합니다.") else println("이름이 일치하지 않습니다")

}

 

 

 

3. when 문

when의 경우는 if문 과 조건을 검사한다는 점은 같지만

if와 달리 조건식이 아닌 조건을 검사할 값이 들어간다는 점이 다르다.

 

즉 when에는 true나 false가 결과값으로 나오는값이 아닌 변수가 들어간다

기본 구조는 

 

when( 검사할 값 ) { case1 -> 코드실행1

                                case2 -> 코드실행2

                                else -> 코드실행3 } 

 

이런 구조로 되어있다 겉보기에는 java 의 switch case문과 굉장히 유사하다고 생각한다.

 

간단한 예제를 보면 이해하기 쉬울 것이다.

fun main(){
 // x라는 변수에 5를 할당해 주었다.
    val x = 5

    // when 구문에 x 변수를 조건식에 넣는다.
    when(x){
        1 -> println("x의 값은 1이다.")
        2 -> println("x의 값은 2이다.")
        3,4 -> println("x의 값은 3 또는 4 이다.")
        in 5..8 -> println("x의 값은 5 이상 8 이하다")
        else -> println("어떠한 조건에도 맞지 않다.")
    }

}

 

이런식으로 여러 분기의 조건문을 표현할 수 있는게 when 문이다.

 

이미 할당된 변수를 when 조건문에 표현하는거 뿐만 아니라

선언한 변수에 할당을 해줄때에도 when 문이 사용이 가능하다

fun main(){

    val num1 = 6 // num1 의 값은 6으로 할당

    // num2 의 값은 when문으로 인해 결정됨.
    
    val num2 = when {
        num1 == 3 -> "num1은 3이다"
        num1 == 6 -> "num1은 6이다"
        else -> "num1은 3도 6도 아니다."
    }
    
    println(num2)

}

 

위 코드를 실행하게 되면

 

결과값은 이렇게 나오고 최종적으로 num2의 값은 "num1은 6이다" 로 지정이된다.

 

이런식으로 간단하게 코틀린 if-else , if - else if - else , when 문에 대해서 알아보았다.

 

'Kotlin' 카테고리의 다른 글

Kotlin 기본 생성자 오버로딩  (1) 2024.04.20
Kotlin 변수와 자료형  (0) 2024.02.01