Kotlin

Kotlin5. 제어구문 if(표현식), when 등등... 분기(分岐)란?

히예네 2023. 7. 30. 18:49
728x90
반응형

https://developer.android.com/codelabs/basic-android-kotlin-compose-conditionals?hl=ko#0 

 

Kotlin에서 조건문 작성하기  |  Android Developers

Kotlin에서 조건문을 작성하는 방법을 알아봅니다.

developer.android.com

1. 분기(分岐)

분기의 뜻은 단순하게 갈림길이 여러개 있다고 생각하면 쉽다. 

분기의 기본구문은 if문이라고 할수있다. ( yes / no의 갈림길로 뻣어나간다.) 

 

제어구문 : 전반적인 처리의 흐름을 제어하기 위한 구문  (ex. 메일계정에 @가 없다면? 어떤 결과를 출력해야하지? ) 

제어구문에는 분기반복문이 존재한다. 

 

(1) if문

조건이 ture 인지 false인지에 따라 결과값이 달라진다. 

fun main() {
    val x = 123
    
   if(x%2==0){
       println("결과 : " +x+"는 짝수입니다.")
   }else{
       println("결과 : " +x+"는 홀수입니다.")
   }
    //output 결과 : 123는 홀수입니다.
}

연산의 나머지가 0인지 (true) 아닌지 (false)에 따라 결과가 달라짐. 

 

※ 코틀린에서는 if는 조건문이 아니라 표현식이라한다 . 결과값이 있기때문에

 

(2) when문

다수의 분기처리를 행하는 when문 (if는 둘 중에 하나를 선택하는반면, when은 여러개 중 하나를 고를수있다.) 

fun main() {
    val level = 7
    
  when(level){
      1,2,3 -> println("コーヒー")
      4,5,6 -> println("ケーキ")
      7,8,9 -> println("しゃぶしゃぶ")
      else -> println("sweet")
  }
    //output しゃぶしゃぶ
}

만약 val level = 7 에 맞는 조건이 없으면 sweet을 출력한다.

필요하다면 else문은 생략가능하다. 이런 경우에 조건에 맞지 않는다면 실행하지 않는다. 

fun main() {
    val level = 0
   
  when(level){
      1,2,3 -> println("コーヒー")
      4,5,6 -> println("ケーキ")
      7,8,9 -> println("しゃぶしゃぶ")
      //else -> println("sweet")
  }
  println("값이 없습니다")
  
  //output 값이 없습니다
    
}

 

2. 반복문

조건을 토대로 반복하여 결과값을 토해낸다. 

(1) while문 

fun main() {
	val number = 3
    var total = 0
    var count = 0
    
    while(number>count++){
        total += count
         println("total : " + total)
    }
    
    println("total : " + total)
    
    //output 
    total : 1
    total : 3
    total : 6
    total : 6
}

 

while의 조건이 >=이면?

fun main() {
	val number = 3
    var total = 0
    var count = 0
    
    while(number>=count++){
        total += count
         println("total : " + total)
    }
    
    println("total : " + total)
    //output 
 	total : 1
    total : 3
    total : 6
    total : 10
    total : 10
}

한번 더 더하게 된다. 

 

do문

fun main() {
    var num = 0
    
    do {
        println("num is $num")
        num++
    } while (num < 3)
    //output
    num is 0
    num is 1
    num is 2
}

do문과 while문의 차이점 : do문은 처음에 무조건 한번 돌린다. (조건이 false인지 true인지 상관없이)

아주 특수한 문법으로 이런 형태도 가능하다라 정도만 참고하기. 

 

(2) for문

fun main() {
   val num = 5
   var total = 0
    
   for(count in 1..num){
       total ++
       println(total)
   }
   
   //output
   	1
    2
    3
    4
    5
}

1과 5을 포함 즉 5번 돌아간다. 

 

(3) continue 와 break

도중에 반복문에서 빠져나와 할 경우 사용한다.

- break : 그 장소에서 처리를 중단하고 반복구문을 빠져나와서 다음 명령을 실행한다.

- continue : 그 장소에서 처리를 중단하고 그 다음 반복구문을 돌린다. 

fun main() {
   val num = 5
    
   var total = 0
   var count = 0
    
   while(true){
       total += ++count
       if(count == num) break
       else continue
       print("이 부분까지 못옵니다. ")
   }
   println("total : " + total)
   //output total : 15
}

 


안드로이드 스튜디오로 연습할때.. 

Android Studio

.kt 파일은 영어로 되어있어서 기계가 읽을 수 없다 → 코틀린 컴파일러가 필요하다.

(자바를 번역한 모양과 똑같다. 기계 입장에서는 다 자바로 보인다. 코틀린이라는 언어는 뭔지 모름)

기계는 오로지 .class만 읽을수있다. 자바의 시스템에 표기법만 다르다.

개발자 입장에서는 kt이고 기계입장에서는 여전히 java이다.

Java로 작업한다면...

 

728x90
반응형