Hello, Android!
조건분기 when if 본문
프로그램의 진행 중 특정 조건에 따라 흐름을 제어하는 조건문이 있다
코틀린에서 사용하는 조건문으로는 if문과 when문이 있다
- if문
if문의 기본적인 모습은 if(조건){제어} 의 모습이다
조건의 판단 결과는 true, false가 들어오며, true인 경우 제어를 실행하고 false인 경우 생략하게 된다
만약 false인 경우 별도의 조건을 실행하고자 할때는 else를 이용한다
위의 경우 {} 안의 제어가 한줄밖에 없다
코틀린에서는 한줄밖에 없는 경우 괄호를 생략할 수 있다
한줄일 경우 괄호의 생략은 if와 else모두에 적용되며, else없이 if만 사용하는 경우에도
동일하게 생략이 가능하다
하지만 이를 더 축약하여 한줄에 끝내는 것도 가능하다
또한 if문 판별의 결과를 변수에 할당하는것도 가능하다
한줄로 축약하는 경우는 if 조건 결과가 그대로 변수에 할당된다
하지만 여러줄이라 괄호가 존재하는 경우는 람다식과 유사하게 괄호의 맨 마지막 값이 변수에 할당된다
만약 한번의 if문으로 여러 조건을 판단해야하는 경우 else if를 사용하여
여러가지 조건에 따른 분기가 가능하다
만약 값의 범위를 판단하는 경우 in을 이용하여 범위 비교를 할수 있다
위와같이 in 뒤에 값의 시작 .. 끝 의 형태로 사용하게 되며
첫번째 if문의 in을 보면 0보다 크거나 같고 10보다 같거나 작다 라는 의미가 된다
-when문
지금까지의 언어들에서는 조건문으로 if문과 switch문이 있지만
코틀린에서는 switch문 대신 when문이 존재한다
다른 언어의 switch문과 다른 점은 when문에 들어오는 값과 완전 일치하는 경우 뿐만아니라
범위, 표현식을 지정할수 있고 else문까지 사용이 가능하며, when문을 멈추는 break도 필요가 없다
만약 여러개의 조건중 하나가 일치하는 경우를 만들때는 , 를 이용하여 값들을 넣어줄수 있다
위의 when문의 경우 값이 0,1,2,3 중 일치하면 -> 뒤의 처리를 실행한다
, 를 통해 여러 숫자를 넣어 범위를 지정할수 있지만, if문에서 사용한 범위를 정하는 in을 사용하여
더욱 알기 쉽게 표현할수도 있다
범위가 아닌 타입에 따라 다른 처리를 해야하는 경우 is를 이용하여 타입 체크를 할수 있다
심지어 코틀린의 when에서는 함수의 결과값과 인자를 비교하는것도 가능하다
return10이라는 호출시 정수 10을 반환하는 함수를 when에서 호출하여
when의 인자 num1과 비교하는것도 가능하다
'Kotlin' 카테고리의 다른 글
스마트 캐스트, 자료형 검사 (0) | 2020.02.22 |
---|---|
코틀린의null (0) | 2020.02.19 |
문자열 String (0) | 2020.02.18 |
import와 확장함수 (0) | 2018.11.26 |
코틀린 함수와 변수 (0) | 2018.11.22 |