Kotlin
if문
`if 문`은 모든 언어에서 사용이되는 것처럼 조건을 판단하여 코드의 흐름을 제어한다.
여러 조건을 사용해야 할 경우 자바와 동일하게 `else if`, `else` 키워드를 사용하면 된다.
if 문의 문법 예
var max = a
if(a < b) max = b
// With else
if(a > b){
max = a
} else {
max = b
}
// As expression
max = if(a > b) a else b
// You can also use 'else if' in expressions:
val maxLimit = 1
val maxOrLimit = if (maxLimit > a) maxLimit else if (a > b) a else b
when 문
when문은 여러 케이스에 대해 구분하기 위해 사용되며, if문을 사용하기엔 비교적 케이스가 많을 경우 사용
(자바의 `Switch` 문을 생각하면 된다.)
when (x) {
1 -> print("x == 1")
2 -> print("x == 2")
else -> { print("x is neither 1 nor 2") }
}
when(x) {
in 1..10 -> print("x is the range")
in validNumbers -> print("x is valid)
!in 10..20 -> print("x is outside the range")
else -> print("none of the above")
}
아직 `enum` 클래스와 같은 형식을 배우지 않았지만, 아래와 같이도 사용가능하다.
enum clss Bit{
ZERO, ONE
}
val numericValue = when (getRandomBit()) {
Bit.ZERO -> 0
Bit.ONE -> 1
}
for 문
특정 코드 범위를 반복해서 수정해야 할 경우 `for 문`을 사용한다.
간단하게 사용한다면 아래와 같은 문법으로 사용이 가능하다.
for (item in collection) print(item)
여러 코드 줄을 반복해야 한다면 자바처럼 `{}`를 사용하여 지정이 가능하다.
그리고 범위를 지정하는 다양한 응용 방법이 존재한다.
for(item: Int in ints){
// ...
}
while 문
`while문`은 `for 문`과 동일하게 코드를 반복하기 위해 사용된다.
반복하는 방식에 따라 편한 키워드가 있으며, 이를 고려하여 적절히 선택하면 된다.
반복문을 수행 후 코드를 실행할지, 코드를 실행하고 반복문을 수행할지에 따라 `Java`처럼 `do-while`문을 지원한다.
while (x > 0){
x--
}
do{
val y = retrieveData()
} while(y != null)
실습
조건문
IfSample
package condition
import kotlin.random.Random
class IfSample {
companion object {
@JvmStatic
fun main(args: Array<String>) {
val a = Random.nextInt(10)
val b = Random.nextInt(10)
println("a는 $a")
println("b는 $b")
if (a > b) println("${a}는 ${b}보다 큽니다.")
if (a < b) {
println("${b}는 ${a}보다 큽니다.")
} else {
println("${b}는 ${a}보다 크지 않습니다.")
}
if (a < b) {
println("${b}는 ${a}보다 큽니다.")
} else if (a == b) {
println("${b}는 ${a}와 같습니다.")
} else {
println("${b}는 ${a}보다 크지 않습니다.")
}
if (a in 1..5) println("${a}는 1~5 사이입니다.")
val max = if (a < b) {
println("max is $b")
b
} else {
println("max is $a")
a
}
println(max)
}
}
}
`Java`와 다른 점은 `a in 1..5` 처럼 `in`문과 `..`을 사용한다는 것이다. 함수형 언어의 특징이랄까
WhenSample
`Kotlin`의 `when`문은 `Java`의 `Switch`문과 같다고 보면 된다.
package condition
import kotlin.random.Random
class WhenSample {
companion object {
@JvmStatic
fun main(args: Array<String>) {
val a = Random.nextInt(10)
val b = Random.nextInt(10)
when (a) {
1, 2 -> println("a == 1 or 2")
3 -> println("a == 3")
4 -> println("a == 4")
5 -> println("a == 5")
in 6..8 -> println("6 <= a <= 8")
else -> println("else! a == $a")
}
when {
a > b -> println("a > b")
else -> println("a <= b")
}
}
}
}
반복문
ForSample
class ForSample{
companion object{
@JvmStatic
fun main(args: Array<String>){
for(i in 1 .. 5){
println(i)
}
println()
for(i in 5 downTo 1){
println(i)
}
println()
for(i in 1 .. 5 step 2){
println(i)
}
}
}
}
마찬가지로, `in`을 사용하여 기존 `Java` 코드보다 좀 더 쉽고 가독성이 좋다.
내림차순으로 반복문을 돌고 싶다면 `downTo`를 사용해주어야 한다.
WhileSample
package loop
import kotlin.random.Random
class WhileSample {
companion object {
@JvmStatic
fun main(args: Array<String>) {
var a = Random.nextInt(10)
while (a > 0) {
if (a % 2 == 0) {
println("$a is even")
a--
continue
} else {
println(a)
a--
}
}
println()
var b = Random.nextInt(10)
do {
println(b)
if (b % 3 == 0) {
println("↑ break!!")
break
}
b--
} while (b > 0)
}
}
}
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] 클래스 (0) | 2024.09.02 |
---|---|
[Kotlin] 함수 (0) | 2024.09.02 |
[Kotlin] 연산자 (0) | 2024.09.02 |
[Kotlin] 변수와 데이터 타입 (0) | 2024.08.29 |
[Kotlin] 코틀린 개요 (0) | 2024.08.29 |