//Control flow
//conditional expreesions
//kotlin은 if 와 when을 조건표현으로 제공한다.
fun main() {
//if를 사용하면 소괄호()안에 조건을 주고 tru일 경우 {}안에 코드를 실행한다.
val d: Int
val check = true
if (check) {
d = 1
} else {
d = 2
}
println(d)
//코틀린에는 3항 연산자는 없다.
//대신 if를 {}없이 사용할 수 있다.
val a = 1
val b = 2
println(if (a > b) a else b)
//when은 조건절인데 여러 개의 조건을 비교할 수 있다. 약간 swich같은 느낌
val obj = "Hello"
when (obj) {
"1" -> println("One")
"Hello" -> println("Greeting")
//"Hello" -> println("Greeting2") // 이건 실행 안됨
else -> println("Unknown")
}
//만족하는 분기문을 순차적으로 실행하므로 만족한 1개만 실행된다는 것에 유의.
//when을 이용했을 때 변수에 바로 할당된다.
val result = when (obj) {
"1" -> "One"
"Hello" -> "Greeting"
else -> "Unknown"
}
println(result)
//Boolean절을 여러 개 체크 하는 경우에도 유용하다.
val temp = 18
val description = when {
temp < 0 -> "very cold"
temp < 10 -> "a bit cold"
temp < 20 -> "warm"
else -> "hot"
}
println(description)
//Ranges
//가장 일반적으로 범위를 만드는 경우에 ..operator를 사용한다.
//1..4 는 1,2,3,4와 같다.
//마지막을 포함하지 않게 선언하고 싶으면 ..<를 사용한다.
//1..<4 는 1,2,3과 같다.
//역순으로 선언할 때는 downTo를 사용한다.
//4 downTo 1은 4,3,2,1과 같다.
//1이 아닌 증가량의 범위를 선언하고 싶으면 step을 사용한다.
//1..5 step 2는 1,3,5와 같음
//Char에서도 사용 가능하다.
//'a'..'d'는 'a','b','c','d'와 같다.
//'z' downTo 's' step 2는 'z', 'x', 'v', 't'이다.
//Loops
//가장 흔한 loop structures로 for과 while이 있음.
//for은 반복하면서 action을 수행하는 것이고,
//while은 특정한 조건이 만족될때까지 action을 수행함.
//for
//for loop를 통해 정해진 범위를 반복할 수 있음.
for (number in 1..5) {
print(number)
}
println()
//Collection에서도 loop를 통해 반복될 수 있다.
val cakes = listOf("carrot", "cheese", "chocolate")
for (cake in cakes) {
println("Yummy, it's a $cake cake!")
}
//while은 두 방법으로 사용될 수 있다.
//1. 조건절이 참일 경우 실행: while
//2. 코드블록을 먼저 실행하고 그 다음에 조건절을 체크한다.: do-while
var cakesEaten = 0
var cakesBaked = 0
while (cakesEaten < 3) {
println("Eat a cake")
cakesEaten++
}
do {
println("Bakes a cake")
cakesBaked++
} while (cakesBaked < cakesEaten)
}
https://kotlinlang.org/docs/kotlin-tour-control-flow.html
Exercise 3 Fizz buzz game
fun main() {
for(number in 1..100){
val result = when {
number % 3 == 0 && number % 5 == 0 -> "fizzbuzz"
number % 3 == 0 -> "fizz"
number % 5 == 0 -> "buzz"
else -> number
}
println(result)
}
}
'정보 > Language' 카테고리의 다른 글
[Javascript] Object, Array (0) | 2024.01.09 |
---|---|
Kotlin: Functions (0) | 2023.08.02 |
Kotlin : Hello, world! (0) | 2023.07.20 |
Enum을 사용한 메뉴관리 (0) | 2022.08.26 |
java.util.HashMap (0) | 2022.07.29 |