if (조건){
실행
}else if (조건2){
실행
}else{
실행
}
var a = 3
var b = 5
val e = if(a<b) a else b // 3
코드를 작성할 때 블록으로 코드를 감쌀 수도 있고, 안 할 수도 있음
val x = 1
when(x){
1 -> println("x=1")
2,3 -> println("x=2 or x=3")
in 4..7 -> println("4<=x<=7")
else -> println("else")
}
else문은 반드시! 있어야 한다.
num % 2를 계산 → 짝인지 홀인지 결정 → 그 값을 num2에 할당
0, 1만 처리하면 될 것 같지만, 전체 조건을 처리하기 위해 else문 꼭 필요
val num = 10
val num2 = when (num%2){
0 -> println("짝수")
else -> println("홀수")
}
fun main() {
doWhen(1) // 정수 1
doWhen("hello") // world
doWhen(100L) // Long type
doWhen('x') // String type이 아님
}
fun doWhen(a:Any){
var result = when (a){
1 -> "정수 1"
"hello" -> "world"
is Long -> "Long type"
!is String -> "String type이 아님"
else -> "else"
}
}
fun main() {
val num = arrayOf(1,2,3,4)
for(n in num){
println(n) // 1; 2; 3; 4;
}
for(i in 1..4){ // .. 키워드
println(i) // 1; 2; 3; 4;
}
for(i in 0..10 step 2){
println(i) // 0; 2; 4; 6; 8; 10;
}
for(i in 10 downTo 0 step 2){
println(i) // 10; 8; 6; 4; 2; 0;
}
}
val num = arrayOf(1,2,3,4)
num.forEach { println(it) } //1; 2; 3; 4;
num.forEachIndexed { index, value ->
println("$index : $value") // 0 : 1; 1 : 2; 2 : 3; 3 : 4;
}
var x = 5
while (x>0){
x--
print(x) // 4; 3; 2; 1; 0;
}
var y = 5
do{
y--
print(y) // 4; 3; 2; 1; 0;
}while (y>0)
break
conitnue
아래 명령의 실행을 중단하고 다시 위로 올라가 반복문의 다음을 실행
var i = 0
while(i<10){
i++
if(i==7) break
if(i%2==0) continue
println(i) // 1; 3; 5;
}
out@
for(i in 1..5){
for(j in 1..5){
println("$i : $j")
if(i+j >= 5) break@out
}
}
println("end")
// 1 : 1; 1 : 2; 1 : 3; 1 : 4; 1: 5; end;
코틀린은 삼항 연산자가 없음
if와 else가 특정 값을 반환 할 수 있기 때문(when문도 동일)
따라서 삼항 연산자가 필요 없음
var a = 10
var b = 5
var max = if(a>b) a else b // 10