오늘은 흐름제어에 대해서 필기 해보았다.

if..else

//if..else
fun main() {
  
  //if..else 사용
  val job = "SoftWare Developer"
    
    if(job == "Software Developer") {
      println("개발자")
    } else("개발자 아님")  
}

//코틀린의 if...else는  "표현식" 이다. 자바는 "구문"이다. 
val age : Int = 10
  
  val str = if(age > 10) {
    "성인"
  } else {
    "아이"
  }

//코틀린은 삼항 연산자가 없다. if..else가 표현식이므로 불필요 하다.
val a = 1
val b = 2
val c = if (b > a) b else a

위와 같이, Kotlin에서의 if..else문은 표현식이며, 삼항연산자가 없다는 특징이 있다. 

 


 

When

자바에서 특정 break누락한 경우, 그대로 넘어가기에 예상치 않은 결과를 return할 수 있다.밑은 자바에서의 When 예시

 

Kotlin

//Kotlin에서 When식 
fun main() {
  val day = 2
  val result = When (day) {
    1 -> "월요일"
    2 -> "화요일"
    3 -> "수요일"
    4 -> "목요일"
    else -> "기타"  
  }
  println(result) //화요일
  // else 생략 가능.
    when(getColor()) {
    Color.Red -> print("red")
    Color.GREEN -> print("green")
    else -> println("blue")
  }
  // 여러개의 조건을 콤마로 구분해 한줄에서 정의할 수 있다.
  when (getNumber()) {
    0, 1 -> print("0 또는 1")
    else -> print("0또는 1이 아님")
  }
}

enum class Color {
  RED, GREEN, BLUE
}

fun getColor() = Color.RED

fun getNumber() = 2-

for loop

fun main() {
  //  범위 연산자 ..를 사용해 for loop 돌리기
  for (i in 0 < .. <3) {
    println(i) 
      //0
      //1
      //2
      //3
  }
  // until을 사용해 반복한다.
  // 뒤에 온 숫자는 포함하지 않는다.
  for (i in 0< until <3) {
    println(i)
      //0
      //1
      //2
  }
  //step의 값 만큼 증가시킨다
  for(i in 0 <.. < 6 step 2){
    println(i)
      //0
      //2
      //4
      //6
  }
  //downTo를 사용해 반복하면서 값을 감소시킨다.
  for(i in 3> downTo >1) {
    println(i)
      //3
      //2
      //1
  }
  
  //전달받은 배열을 반복
  val numbers = arrayOf(1,2,3)
    
    for(i in numbers) {
      println(i)
    }
  //1
  //2
  //3
}

While

fun main() {
  //Java의 while문과 동일
  //조건을 확인하고 참이면 코드 블록을 실행한 후 다시 조건을 확인
  
  var x = 5
    
    while(x > 0) {
      println(x)
        x--
        //5
        //4
        //3
        //2
        //1
    }
  
}

 

 

출처 FastCampus

'Kotlin' 카테고리의 다른 글

Kotlin.06 클래스와 프로퍼티  (0) 2023.04.02
Kotlin 05.예외처리  (0) 2023.04.02
Kotlin 04. 널 참조  (0) 2023.04.02
Kotlin 02. 함수  (0) 2023.04.02
Kotlin 01.변수  (0) 2023.04.02

+ Recent posts