코틀린에서 조건문 if -else, when 사용 방법에 대해 알아보도록 하겠습니다.
먼저 if -else 조건문에 대해 알아보도록 하면 다른 언어에서 사용되는 if -else 조건문과 큰 차이가 없다는 것을 알 수 있습니다.
if(조건식){
실행할 명령 // 조건식이 true인 경우에만 실행
}else if(조건식){
실행할 명령 // 조건식이 true인 경우에만 실행
}else{
실행할 명령 // 조건식이 true인 경우에만 실행
}
여기서 if 조건문만 사용할 수 도 있고 if -else 조건문만 사용할 수도 있고 필요에 따라 사용하시면 됩니다.
예제 코드를 보면서 확인해 보겠습니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var a = 3
var b = 3
if(a>1){
a++
}else if (b>1){
b++
}else{
a--
b--
}
}
}
위 코드처럼 if -else 조건문을 코드로 구현할 수 있습니다.
다음으로는 when 조건문에 대해 알아보도록 하겠습니다.
when 조건문은 다른 언어에서 사용되는 switch 조건문과 동일한 역할을 합니다.
하지만, 코틀린의 when 조건문은 switch 조건문처럼 break를 넣지 않아도 해당되는 케이스만 실행됩니다.
when(비교할 변수){
변수에 일치하는 값 혹은 표현식 -> 실행할 명령
...
else -> 실행할 명령
}
true, false 로 비교하는 if -else 조건문과 다르게 when 조건문은 하나의 변수로 여러 개의 값을 비교할 수 있습니다.
다음 예제 코드를 보면서 자세히 알아보도록 하겠습니다.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var number = 7
when(number){
1 -> println("number는 1 입니다.")
2 -> println("number는 2 입니다.")
3,4 -> println("number는 3,4 입니다.") // number가 3과 4인 경우
in 5..10 -> println("number는 5~10 입니다.") // number가 5~10인 경우(5,6,7,8,9,10)
else -> println("number를 알 수 없습니다.")
}
}
}
위 코드처럼 when 조건문을 통해 number라는 변수를 여러 개의 값으로 비교할 수 있습니다.
이때, when 조건문 안에 'in' 키워드와 '..' 기호가 있는데 'in' 키워드와 '..' 기호를 사용하게 되면 범위를 지정할 수 있습니다. 또 when 조건문에 경우 ', ' 연산자도 사용할 수 있습니다.
이렇게 많은 조건을 체크해야 하는 경우에는 다중 if 조건문이 아닌 when 조건문을 사용하는 게 더욱 간결한 코드로 유지할 수 있을 것입니다.
마지막으로 간단하게 비교 연산자에 대해서 알아보도록 하겠습니다.
*등호 : ==
*부등호 : <, <=, >, >=, !=
*is : 자료형이 맞는지 체크해주는 연산자
*!is : 자료형이 틀린 지 체크해주는 연산자
ex) a is Int
: 좌측 a라는 변수가 우측 Int 자료형에 호환되는지 여부를 체크하고 형변환까지 한 번에 진행시켜 줍니다.
'Develop > Kotlin' 카테고리의 다른 글
[kotlin] 코틀린 Activity와 Fragment의 생명주기(lifecycle) (0) | 2021.02.05 |
---|---|
[kotlin] 코틀린 반복문(for, while, do -while) (0) | 2021.02.02 |
[kotlin] 코틀린 text 넣는 법 (0) | 2021.02.01 |
[kotlin] 코틀린 함수와 최상위 함수 (0) | 2020.08.27 |
[kotlin] 코틀린 액티비티간 화면 전환 (0) | 2020.08.27 |