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제 라는 책을 기반으로 공부 내용을 정리하였습니다.

Kotlin에서 각 타입 및 크기는 다음과 같다.

 

정수 타입

- Byte      |        1 byte

- Short    |        2 byte

- Int         |        4 byte

- Long     |        8 byte

 

실수 타입

- Float     |        4 byte

- Double  |        8 byte

 

문자 타입

- Char    |      1 byte

 

문자열

- String

 

각 타입 별로 값을 정의 할 경우, "_" 를 이용하여, 숫자들의 자리를 구분할 수 있다. 이는 위치 및 갯수에 제약이 없다.

(하기의 예제 참고)

val a:Byte = 125
val b:Short = (100 + 200) * 100
var c:Int = 12_4354_6538	// 숫자 안에 _ 를 넣어주면, 숫자를 좀더 알아보기 쉽게 정의할 수 있다.
// _ 의 위치와 갯수는 마음대로 넣을 수 있으며, 실수 타입에서도 적용 가능.
var d:Int = 1243546538

c = 0xFF_88_88	// 0x로 시작하면, 16진수로 인식
c = 0b01010010_01100011_01110101_01000101 //0b로 시작하면, 2진수로 인식
var e:Long = -543_7847_3984_7238_4723

var f:Float = 67.6f
val g:Double = 658.456

f = (f+g).toFloat()

var ch:Char = 'A'
ch = '\uAC00' //<-- /u를 이용하여, Unicode를 직접 입력할 수 있다.
ch = '한'

var str:String = "Hello"
str = str+"\nKotlin!"

Kotlin에서는 Int Type보다 작은 정소들을 이용하여, 연산할 시, 반드시 Int로 전환이 되어 결과 값이 발생된다.

예) Byte + Byte = Int, Byte + Short = Int, Byte - Byte = Int, Byte * Short = Int,  Byte / Short = Int

 

※ Kotlin은 8진법을 지원하지 않는다.

 

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

변수

변수 선언 방식

var {변수 명}: {변수 Type}

예> var total:Int

 

변수 선언 및 초기화

var {변수 명}: {변수 Type} = {초기 값}

예> var total:Int = 100

 

변수 선언

var : 일반 변수

val : 불변 변수 (java에서 final 선언으로 생가하면 됨)

 

예제 코드는 다음과 같다.

var total: Int
total = 10

val a: Int = 10 + 53 - 7
println(a)

val b:Int = 43 + 75 + a
println(b)

total = a + b
println(total)

산술 연산자

산술 연산자의 종류 : +. -. *, /, %

val num:Int = 15 - 4 * 3
val num2:Int = 65 % 7
val num3:Double = 7.5 / 5 + 22.25
val num4:Double = num/num2 + 0.7
val num5:Double = num.toDouble()/num2 + 0.7

Int를 Double로 변경하는 방법은 다음과 같다.

1.  소숫점을 붙여서 변경하는 방법 : 15 -> 15.0

2. API 를 이용한 방법 : {변수 명}.toDouble()

 

Java 와 동일하게 a++ 또는 ++a 와 같이 동일하게 사용하고 있다.

var a:Int = 10
var b:Int = 20

println(a++ + b)
println(a)
println(--b)

비트 연산자

Kotlin은 비트 연산자를 기호가 아닌 문자로 구성된다.

AND 연산

- Java : 15 & 7

- Kotlin : 15 and 7

 

OR 연산

- Java : 15 | 7

- Kotlin : 15 or 7

 

XOR 연산

- Java : 15 ^ 7

- Kotlin : 15 xor 7

 

~연산

- Java : ~32767

- Kotlin : 32767.inv()

 

<< 연산

- Java : 1 << 3

- Kotlin : 1 shl 3

 

>> 연산

- Java : 1 >> 3

- Kotlin : 1 ser 3

 

>>> 연산 ( 부호를 유지한 채 Shift 연산 )

- Java : -17 >>> 2

- Kotlin : -17 user 2

 

비교/논리/참조 변수 비교 연산자

비교 연산자의 종류 : ==, !=, >, <, >=, <=

논리 연산자의 종류 : &&, ||, !

참조 변수 비교 연산자

- 두가지의 참조 변수가 하나의 같은 객체를 가리키는 지를 확인하는 연산자

=== : 같은 객체를 가르킬 경우

!== : 서로 다른 객체를 가르킬 경우

 

참조 변수 비교 연산자의 예제

var a = "one"
var b = "one"

println(a===b) // Result : True
// 컴파일러는 매번 새로운 문자열을 생성하지 않고, 하나의 문자열을 가리키도록 만듦.

b = "on"
b += "e"
println(a===b) // Result : False

b = a
println(a===b) // Result : True

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

+ Recent posts