안드로이드 코틀린 사용을 위한 기본문법2

Suyong Lee·2021년 8월 29일
0

Android

목록 보기
7/22
post-thumbnail

조건문

'제어문' 이라고도 하는데, 이는 코드의 흐름을 조건에 따라 바꿀 수 있기 때문이다.

조건문 : if , when
반복문 : for , while

if문의 활용

var a = 30
var b = 19
var bigger = a > b
Log.d("비교 연산자", "a는 b보다 큽니다. : $bigger")
if (조건식) {
	조건식이 참일 경우 실행되는 코드 영역
}

{ } 안을 코드 블록 또는 코드 스코프라고 한다.

조건문 when의 활용

다른 언어와는 다르게 같은 값뿐만 아니라 범위 값도 처리할 수 있고 사용 방법도 더 많다. 코틀린에서의 when 문은 특정 값을 선택할 수 있는 switch의 사용법에 if문의 범위 비교 기능이 더해진 if 문의 확장판이라고 생각하면 된다.

when(파라미터) {
	비교값 -> {
    	// 변숫값이 비교값과 같다면 이 영역이 실행된다.
    }
}

특정 값을 비교하는데 결과 처리가 동일하다면 콤마로 구분해서 한 번에 비교할 수 있다.

var now = 9
when (now) {
	8, 9 -> {
    	Log.d("when", "현재 시간은 8시 또는 9시입니다.")
    }
    else -> {
    	Log.d("when", "현재 시간은 9시가 아닙니다.")
    }
}

범위 값을 비교하기

in 을 사용해서 범위 값을 비교할 수도 있다. if 문의 비교 연산자 중 <=, >= 과 같은 기능을 구현할 수 있다.

var ageOfMichael = 19
when (ageOfMichael) {
	in 10..19 -> {
    	Log.d("when", "마이클은 10대입니다.")
    }
    !in 10..19 -> {
    	Log.d("when", "마이클은 10대가 아닙니다.")
    }
    else -> {
    	Log.d("when", "마이클의 나이를 알 수 없습니다.")
    }
}

파라미터가 없는 when 사용

var currentTime = 6
when {
	currentTime == 5 -> {
    	Log.d("when", "현재 시간은 5시입니다.")
    }
    currentTime > 5 -> {
    	Log.d("when", "현재 시간은 5시가 넘었습니다.")
    }
    else -> {
    	Log.d("when", "현재 시간은 5시 이전입니다.")
    }
}

파라미터의 범위를 특정할 수 없는 경우 if 를 쓰는게 합리적이고, 파라미터의 범위를 특정할 수 있는 경우에는 when 을 쓰는 것이 합리적이다. ( 범위를 특정할 수 없는 경우 : 연도 , 범위를 특정할 수 있는 경우 : 요일 )

범위를 특정할 수 없다는건 그만큼 비교해야 할 값이 많다는 뜻이다.

profile
이수용

0개의 댓글

관련 채용 정보