[Kotlin] Control Flow : when, Loops, Ranges, Equality Checks, Conditional Expression

제어 흐름(Control Flow)의 When, Loops, Ranges, Equality Checks(동일성 검사), 조건 표현식(Conditional Expression)에 대해서 알아봅니다.
Apr 19, 2024
[Kotlin] Control Flow : when, Loops, Ranges, Equality Checks, Conditional Expression

Control Flow

When

널리 사용되는switch 구문 대신에, Kotlin은 When문을 사용하면 유연하고 깔끔하게 구성할 수 있다. 구문 또는 표현식으로 사용할 수 있다.

Kotlinwhen은 두 가지 형태로 사용될 수 있습니다. 문(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는 역순으로 범위를 반복한다.

  1. 알파벳 순서로 문자 범위를 반복한다

  2. 문자 범위는 step, downTo도 지원한다

Equality Checks

Kotlin은 구조 비교에는 == 를, 참조 비교에는 ===를 사용한다. 더 정확히 하면, a == b if (a == null) b null else a.equals(b)로 컴파일 된다.

  1. sets은 요소의 순서를 무시하므로 authors.equals(writers) 를 호출하기 때문에 true를 반환한다.

  2. authorswriters는 서로 다른 참조이므로 false를 반환한다.

Conditional Expression

Kotlin에는 삼항 연산자(Ternary operators) condition ? then : else가 없습니다. 대신 if를 표현식으로 사용할 수 있습니다.

본 포스팅은 Kotlin 공식 문서의 내용을 번역하였습니다.

Share article

code-with-me