if 문 사용 예시
val answerString: String = if (count == 42) {
"I have the answer."
} else if (count > 35) {
"The answer is close."
} else {
"The answer eludes me."
}
println(answerString)
// 위 조건식을 아래와 같이
val answerString = when {
count == 42 -> "I have the answer."
count > 35 -> "The answer is close."
else -> "The answer eludes me." // when 이 Expression이면 else 필수!!!
}
println(answerString)
참고사항 : Kotlin 에는 3항 연산자가 없으며 주로 조건식이 대신 사용됨
→ 자바의 if-else문과 달리, 코틀린의 if-else문은 Statement뿐만 아니라 값을 리턴하는 Expression이 될 수 있다.
Expression과 Statement의 차이점
어떤 연산을 거쳐 값을 반환하면 Expression이고, 단순히 명령을 지시하는 문장이면 Statement이다.
코틀린에서 모든 함수는 Expression이다.
함수가 값을 반환하지 않더라도 항상 Unit이 리턴되기 때문에 Expression으로 본다. (반면에, 자바의 void형은 Statement이다.)
조건문에서 null 체크
val languageName: String? = null
if (languageName != null) {
// No need to write languageName?.toUpperCase()
println(languageName.toUpperCase())
}
fun array(){
val array = arrayOf(1, 2, 3)
val list = listOf(1, 2, 3)
val array2 = arrayOf(1, "d", 3.4f)
val list2 = listOf(1, "d", 11L)
array[0] = 3 // mutable
//list[0] = 2 // immutable
var result = list.get(0)
// 기본적인 List는 참조만 할 수 있고, 값 변경은 불가
// MutableList의 대표적인 예시가 ArrayList
val arrayList = arrayListOf<Int>()
// 어레이리스트의 내용은 바뀌지만, 그 주소값은 바뀌지 않기 때문에 val
arrayList.add(10)
arrayList.add(20)
//arrayList = arrayListOf()
// Val cannot be reassigned. val은 새로 생성된 객체를 가리킬 수 없음.
}
for문
fun forAndWhile(){
val students = arrayListOf("aaa","bbb","ccc","ddd")
for(name in students){
println(name)
}
var sum = 0;
for(i in 1..10){
sum += i
}
println(sum)
}
// for 문 사용 예시
for(i in 1..10 step 2) // 1 3 5 7 9
for(i in 10 downTo 1) // 10 9 8 7 6 ... 1
for(i in 1 until 10) // 10 제외
while문