
if식에 어떤 조건식이 들어가고 그 조건식이 true일 경우 code1를 실행한다. 반대로 false인 경우에는 code1를 건너뛰고 code2를 실행한다.
만약에 조건을 걸어야 되는 것들이 여러가지면 else if, else를 사용한다. 더 추가할 경우에는 else if를 여러개의 붙여서 사용하면 된다.

✍️ 예제
fun main()
{
val a = 3
val b = 5
val c = 8
val d = 10
if (a < b) println("${a}는 ${b}보다 작다.") //true
if (b > c) println("${b}는 ${c}보다 크다.")
else println("${b}는 ${c}보다 작다.") //true
if (a > c) println("${a}는 ${c}보다 크다.")
else if (c > d) println("${c}는 ${d}보다 크다.")
else println("${c}는 ${d}보다 작다.") //true
}
👀 결과
3는 5보다 작다.
5는 8보다 작다.
8는 10보다 작다.
여러 케이스에 대해 구분하기 위해 사용되며, if문을 사용하기엔 비교적 케이스가 많을 경우 사용한다. (else if를 많이 사용한다는 뜻)
when (변수)
{
비교값 1 -> {실행할 코드}
비고값 2 -> {실행할 코드}
...
else -> {변수 값이 앞의 비교값들과 다르면 실행할 코드}
}
✍️ 예제(1)
var num : Int = 2
when (num)
{
1->{print("num is 1")}
2->{print("num is 2")}
else->{print("num is neither 1 nor 2")}
}
👀 결과
num is 2
✍️ 예제(2)
class MyClass
fun main()
{
cases("Helo")
cases(1)
cases(System.currentTimeMillis()) //Long
cases(MyClass()) //객체
}
fun cases(obj : Any)
{
when (obj) {
1 -> println("Int : ${obj}")
"Hello" -> println("String : ${obj}")
is Long -> println("Long : ${obj}")
!is String -> println("Not a String")
else -> println("Unknown")
}
}
👀 결과
Unknown
Int : 1
Long : 1718168622301
Not a String
조건의 범위를 설정해야 할 경우 in 연산자를 사용할 수 있다.
.. : 마지막 값 포함 O
until : 마지막 값 포함 X
fun solution(angle: Int): Int
{
when (angle)
{
in 1 .. 89 -> return 1 //.. > 89포함 O
90 -> return 2
in 91 until 180 -> return 3 // until > 180포함 X
180 -> return 4
}
return 0
}
특정 코드 범위를 반복해서 수행해야 할 경우 for문을 사용.
1. 일반적인 for문
for(a : Int in 1..10)
print("$a") // 1~10까지 반복한다.
val len : Int = 5
for(b in 1..len)
print("$b") // 1~len(5)까지 반복한다.
for (c in 1 until len)
print("$c") // 1~4까지 반복한다.
2. 증가값 다양한 for문_step
step()를 사용해 증가값을 변경할 수 있다.
step에 들어간 변수는 const로 값이 고정되니 참고!
step은 음수를 지원하지 않다.
for(d: Int in 1..10 step(2)) //1, 3, 5, 7, 9
print("$d")
for(e in 10..1 step(-1)) //error
print("$e")
3. for 문 위에서 아래로_downTo
위에서 아래로 값을 하나씩 빼면서 내려온다.
for (f in 10 downTo 1) // 10, 9, 8 ... 1
print("$f")
for (g in 10 downTo 1 step(2)) // 10, 8, 6, 4, 2
print("$g")
4. 배열을 for문을 이용해 출력하기_IntArray
배열값을 거꾸로 얻어오려면 .reversed()함수를 이용하거나 .count()함수를 이용해 좀 더 유연하게 사용할 수 있다.
val arr : IntArray = intArrayOf(5, 10, 15, 20, 25)
for(i in arr)
print("$i") // 5, 10, 15, 20, 25
for(i in arr.reversed())
print("$i") //30, 25, 20, 15, 10, 5
val list = listOf("korea", "water", "ㅇㅅㅇ")
for(i in list)
print("$i") // korea, water, ㅇㅅㅇ
for(i in 0 until list.count())
print("${list[i]}") // korea, water, ㅇㅅㅇ
주어진 조건에 만족하는 동안 코드 블럭을 반복적으로 실행하는 반복문이다.
while과 do while의 차이는 최초 1회 실행 여부의 차이다.
✍️ while문 예제
import kotlin.random.Random
fun main()
{
var a = Random.nextInt(10) //변수a를 랜덤으로 생성하기
println(a) //변수a를 먼저 확인하기 위해 출력
println()
while(a>0)
{
if (a % 2 == 0)
{
println("${a} is even")
a--
continue
}
else
{
println(a)
a--
}
}
}
👀 결과
8 //변수a는 8이라는 랜덤 숫자가 나옴.
---
8 is even
7
6 is even
5
4 is even
3
2 is even
1
✍️ do while문 예제
fun main()
{
var b = Random.nextInt(10)
println(b)
println("---")
do
{
if (b % 3 == 0)
{
println("${b} braek!!")
break
}
b--
} while (b>0)
}
👀 결과
5
---
3 braek!!
반복문 안의 구문이 실행되는 중, continue구문을 만나면 해당 반복문으로 다시 돌아간다.
반복문 안의 구문이 실행되는 중, break구문을 만나면 반복문을 빠져나간다.