[Kotlin] Control Flow : when, Loops, Ranges, Equality Checks, Conditional Expression
Control Flow
When
널리 사용되는switch
구문 대신에, Kotlin은 When문을 사용하면 유연하고 깔끔하게 구성할 수 있다. 구문 또는 표현식으로 사용할 수 있다.
Kotlin의 when
은 두 가지 형태로 사용될 수 있습니다. 문(statement) 형태와 표현식(expression) 형태입니다.
When Statement
when
문(statement): when
문은 각 분기의 결과를 반환하지 않습니다. 대신, 각 분기에서 실행되는 코드 블록의 결과는 무시되며, when
문 자체는 어떠한 값을 반환하지 않습니다. 이 형태는 주로 분기마다 다른 동작을 수행해야 할 때 사용됩니다.
When Expression
when
표현식(expression): when
표현식은 각 분기의 결과를 반환합니다. when
표현식의 값은 일치하는 분기의 코드 블록이 반환하는 값입니다. 이 형태는 값을 계산하거나 변수에 값을 할당할 때 사용됩니다.
Loops
Kotlin은 일반적으로 사용되는 모든 루프(for
, while
, do-while
)를 지원합니다.
For, while, do-while
Iterators
사용자 정의 iterato를 정의할 수 있다. iterator 연산자를 class안에 선언하여 구현하면 된다.
class
에서 iterator
를 정의해야한다. iterator
라고 이름이 지어져야 하며, operator
수정자가 있어야 한다.
Ranges
0123 012 2468 3210
이 출력된다. downTo
는 역순으로 범위를 반복한다.
알파벳 순서로 문자 범위를 반복한다
문자 범위는
step
,downTo
도 지원한다
Equality Checks
Kotlin은 구조 비교에는 ==
를, 참조 비교에는 ===
를 사용한다. 더 정확히 하면, a == b
는 if (a == null) b null else a.equals(b)
로 컴파일 된다.
sets은 요소의 순서를 무시하므로
authors.equals(writers)
를 호출하기 때문에true
를 반환한다.authors
와writers
는 서로 다른 참조이므로false
를 반환한다.
Conditional Expression
Kotlin에는 삼항 연산자(Ternary operators) condition ? then : else
가 없습니다. 대신 if를 표현식으로 사용할 수 있습니다.
본 포스팅은 Kotlin 공식 문서의 내용을 번역하였습니다.