조건문이란?
- 특정 조건에 따라 실행을 달리하고자 할 때 사용한다.
- '제어문'이라고도 하는데 이는 코드의 흐름을 조건에 따라 바꿀 수 있기 때문
- 제어문은 조건문에 해당 하는 if, when 반복문에 사용하는 for, while이 있다.
if 문
1. 기본적인 if문
var myAge = 28
var yourAge = 35
if(myAge == yourAge){ //FALS
Log.d("Age","동갑입니다.")
}
else if(myAge > yourAge){ //FALS
Log.d("Age","연상입니다.")
}
else { //TRUE
Log.d("Age","연하입니다.")
}
2. 변수에 직접 if문 사용
var myAge = 28
var yourAge = 35
var olderAge = if(myAge > yourAge) myAge else yourAge //olderAge = 35
3. if 마지막 값을 반환하기
var myAge = 28
var yourAge = 35
var olderAge = if(myAge < yourAge){
var sisterAge = 25
yourAge //마지막 줄의 yourAge 값이 변수 olderAge에 저장
}
else{
myAge
}
- 조건식의 결과는 Boolean 타입인 true와 false 로 나뉜다.
- 조건식의 결과가 true 인 경우만 실행된다.
when 문
- 다른 언어의 switch문과 비슷한 문법
- switch 는 같은 값만을 처리할 수 있지만 when은 범위 값을 지정하여 처리할 수 있다.
1. 기본적인 when문
var age = 20
when(age){
20->{
Log.d("when","20살 입니다.")
}
30->{
Log.d("when","30살 입니다.")
}
else->{
Log.d("when","나이를 알 수 없습니다.")
}
}
2. 콤마로 구분하여 사용
var age = 20
when(age){
20,30->{
Log.d("when","20 혹은 30대 입니다.")
}
else->{
Log.d("when","나이를 알 수 없습니다.")
}
}
3. 범위 값 비교 (in 사용)
var height = 180
when(height){
in 160..169->{
Log.d("when","키가 160대 입니다.")
}
in 170..179->{
Log.d("when","키가 170대 입니다.")
}
in 180..189->{
Log.d("when","키가 180대 입니다.")
}
else->{
Log.d("when","키를 알 수 없습니다.")
}
}
4. 파라미터가 없는 when 사용
var age = 28
when{ //when 다음에 오는 괄호를 생략하고 마치 if문처럼 사용
age == 20 ->{
Log.d("when","나이가 20살 입니다.")
}
age > 20 ->{
Log.d("when","나이가 20살이 넘습니다.")
}
else ->{
Log.d("when","나이가 20살보다 낮습니다.")
}
}
if문과 when문은 언제 사용할까?
Reference
이것이 안드로이드다 with 코틀린