본문 바로가기

차근차근 코틀린

차근차근 Kotlin(2) - 조건문

조건문

- 특정한 조건에 따라 실행을 달리하고자 할 때 사용.

- 종류 : if, when

 

 - 조건문 if 

 

 if( 조건식1 ) { 
	실행문 → 조건식이 참이면 실행문이 실행되는 코드영역  
 } else if( 조건식2 ) { 
 	실행문 → 조건식1이 거짓이고, 조건식2가 참일 경우 실행되는 코드영역  
 } esle {      
 	실행문 → 조건식1과 조건식 2가 모두 거짓일 경우 실행되는 코드영역  
 }

 

  • if문의 조건식에는 비교연산자 ( == ,< ,>, <=, >=, !=)와 논리연산자(&&, ||, !)를 사용한 조건식만 사용가능하며, 조건식의 결과는 Boolean 타이인 true와 false로 나타난다.

 

* 논리 연산자 
   && -> (논리곱) 두 항이 모두 true일 때만 true반환, 이외에는 false
   || ->  (논리합) 두 항중에 하나의 항이라도 true이면 true 반환, 모두 false일 때만 false 반환
   ! -> (부정단항연산자) true를 false로 false를 true로 바꿈 ex) !(2>1) → 결과값 false

 

- 변수에 직접 if문 사용하기

  var a = 5  
  var b = 3  
  var bigger = if(a>b) a else b

 

- if의 마지막 값을 반환값으로 사용하기

var a = 5
var b = 3
var bigger = if(a>b) {
    a = a - b
    a }

 

 - 조건문 when 

 

- java의 switch와 비슷함. switch문은 if문의 연산식에서 사용되는 비교 연산자 중에 ==만을 사용하여 같은 값인지를 비교.

- Kotlin의 when = switch의 사용법 + if문의 범위 비교기능

when(parameter) {   
	비교값1 -> {                 
    	   실행코드 // parameter로 넣은 변수값이 비교값1과 같다면 실행된다.   
    }
    
    비교값2 -> {                
    	   실행코드 // parameter로 넣은 변수값이 비교값 2와 같다면 실행된다.   
    }
}

 

    fun testWhen() {
        var time = 9

        when(time) {
            8 -> {
                Toast.makeText(this,"현재시각은 8시 입니다.", Toast.LENGTH_SHORT).show()
            }
            9 -> {
                Toast.makeText(this,"현재시각은 9시 입니다.", Toast.LENGTH_SHORT).show()
            }
        }
    }

    fun testWhenComma(){
        var now = 9

        when(now){
            8,9 -> {
                Toast.makeText(this,"현재시각은 8시 혹은 9시 입니다.", Toast.LENGTH_SHORT).show()

            }
            else -> {
                Toast.makeText(this,"현재시각은 8시 혹은 9시가 아닙니다.", Toast.LENGTH_SHORT).show()

            }
        }
    }
    fun testWhenCompare(){
        var ageOfPeace = 25
        
        when(ageOfPeace) {
            in 10..19 -> {
                Toast.makeText(this,"피쓰는 10대입니다.", Toast.LENGTH_SHORT).show()

            }
            !in 10..19 -> {
                Toast.makeText(this,"피쓰는 10대가 아닙니다.", Toast.LENGTH_SHORT).show()

            }
            else -> {
                Toast.makeText(this,"피쓰의 나이를 모릅니다.", Toast.LENGTH_SHORT).show()

            }
        }
    }

 

▶ 범위가 넙고 특정할 수 없을 경우에는 if문을 사용하고, 범위가 제한뒤고 값도 특정할 수 있는 경우에는 when을 사용하는 것이 바람직하다.