val num: Double = 15.0 / 2
val num2: Int = 85 % 7
val num3: Double = num2.toDouble() / num2 + 0.7
2) Short
3) Int
3) Long
1) Float
2) Double
val a: Byte = 125
val b: Short = (100 + 200) + 300
val c: Int = 12_4353_1234
c = 0xFF_88_88
c = 0b01010010_01100011_01110101
val d: Long = -543_7843_1234_5678
c = a + b
d = c + 10L
val e: Float = 67.6f
val f: Double = 658.456
e = (e + f).toFloat()
var ch: Char = 'A'
println(ch)
// -> A
ch = '\uAC00'
println(ch)
// -> 가
ch = '한'
println(ch.toInt())
// ->54620
// 컴퓨터는 숫자 값만을 저장할 수 있기 때문에 문자를 저장하기 위해 해당 문자와 매핑된 문자 코드를 저장한다.
// '한'의 문자코드(유니코드) = 54620
typealias Number = Int
fun main(args: Array<String>): Unit{
val a: Number = 10
println(a)
}
val value: Int = if(10 > 5){ println(“10은 5보다 크다”) 10 } else{ println(“10은 5보다 크지 않다.”) 5 }
println(value) }
- if 블록 안의 마지막 표현식의 if-else 표현식의 값이 된다.
- 즉, 위의 예시에서 val value: Int = 10이 된다.
- 위의 예제와 달리 if 가 아닌 else 블록이 실행되는 경우에는 else 블록의 마지막 표현식인 5가 if-else 표현식의 값이 된다. val value: Int = 5가 된다.
- if 블록과 else 블록의 마지막 표현식의 타입이 일치해야한다. if 블록의 마지막 표현식이 Int 타입이었으면 else 블록의 마지막 표현식도 Int 타입이어야한다.
- if-else의 블록이 비어있거나, 마지막 문장이 표현식이 아니라면 if-else 표현식의 타입이 Unit 가 된다. 아래 예시에서 변수 a와 변수 b는 Unit 타입이 되어서 의미없는 값이 저장된다.
val a = if(10>6){} else{}
// 또는 val b = if(10>5){ val a = 10 } else{ val a = 5 } ```