typealias 키워드를 이용하여, C와 C++ 언어의 typedef와 같이 type에 별명을 붙일 수 있다.

typealias csjungNumber = Int

fun main(args: Array<String>) {
    var a:csjungNumber = 10
    println(a)
}

if - else 문 같은 경우에는 다른 언어들과 동일하게 사용하고 있으며, Kotlin에서는 추가적으로 표현식에도 사용할 수 있다.

al value:Int = if(10 > 5) {
println("10은 5보다 크다.")
10
} else {
println("10은 5보다 크지 않다.")
5
}

when 문은 타 언어에서 switch문과 같은 역할을 한다.

when ({타깃 표현식}) {

    {타깃 표현식과 비교할 값} ->

        {

            ....

        }

}

// 일반적인 사용법
when(score / 10)
{
  6 -> {
	println("D")
  }

  7 -> {
  	println("C")
  }

  8 -> {
  	println("B")
  }

  9, 10 -> {
  	println("A")
  }

  else -> {
  	println("F")
  }
}

// 표현식으로 사용법
val grade: Char = when(score / 10)
{
  6 -> 'D'
  7 -> 'C'
  8 -> 'B'
  9, 10 -> 'A'
  else -> 'F'
}

while문 같은 경우에는 타 언어와 동일한 방식으로 사용되고 있다.

do {
  i += 1
  if(i >= 5) {
    ...
    break
  } else if(i == 2) {
    ...
    continue
  }
  ...
} while(true)

Label 은 중첩된 반복문의 흐름을 제어하기 위한 키워드 이다.

사용 방법은 다음과 같다.

- while 구문

{label name}@ while 구문

- break 구문

 break@{label name}

Label에 대한 사용 예제는 다음과 같다.

fun main(args: Array<String>) {
  var x = 0;
  var y = 0;
  var z = 0;

  outer@ while(x <= 20) {
    y = 0
    while(y <= 20) {
      z = 0
      while(z <= 20) {
        if(x+y+z == 15 && x - y - z == 5) {
            break@outer
        }
        z++
      }
      y++
    }
    x++
  }

  println("x:$x, y:$y, z:$z")
}

위의 예제를 보았을 때, "if(x+y+z == 15 && x - y - z == 5)" 라는 조건에 참이 된다면, "while(z <= 20)"의 흐름을 계속 타지 않고, "outer@while(x <= 20)" 의 흐름을 바로 탈출하게 된다.

 

만약 outer@ 가 "while(y <= 20)" 에 존재한다면, 해당 코드는 while(x <= 20) 의 흐름을 계속 타고 있을 것이다.

 

위의 label에 대한 예제 코드의 결과물은 다음과 같다.

결과 값

x:10, y:0, z:5

 

참고 : 초보자를 위한 Kotlin 200제 라는 책을 기반으로 공부 내용을 정리하였습니다.

+ Recent posts