[Kotlin]4. 조건문과 비교 연산자
If 문
if문 : if문에 주어진 값이 '참' 일때 따라오는 구문을 실행하는 기능
1
2
3
4
5
6
7
8
|
fun main(){
var a = 10
if(a > 8) {
println("a는 8보다 크다")
} else {
println("a는 8보다 작거나 같다")
}
}
|
cs |
if( 조건 ) {
참일때 실행되는 실행문
} else {
거짓일때 사용되는 실행문
}
위와 같은 방식으로 If 문을 구성하며 {} 가 있는 이유는 참,거짓일때 수행되는 구문이 2개 이상일 수 있기 때문이다.
만약 수행되는 구문이 1개 라면 "if (조건) 실행문" 형식으로 코드를 적어도 무방하다.
비교연산자
< : 작다
<= : 작거나 같다
> : 크다
>= : 크거나 같다
!= : 같지 않다
== : 같다
= : 우측의 값을 좌측변수에 할당하는 '할당 연산자' 이며 == 과 혼동 하지 않도록 주의 한다.
(ex : a = 7 -> 7은 a 와 같은것이 아닌, 7이라는 값을 a 변수에 할당하겠다는 의미)
is : 자료형이 맞는지 체크
!is : 자료형이 틀린지 체크 (! 는 not 을 의미함)
ex) a is int -> 좌측 자료형이 우측 자료형에 '호환' 되는지를 체크하고 형변환까지 시켜주는 연산자
1
2
3
4
5
6
7
8
9
10
|
fun main(){
var a = 3
if (a is Int){
println("a 는 정수입니다.")
} else {
println("a는 정수형이 아닙니다.")
}
}
|
cs |
다중조건문 When
when : Java 에서 제공하는 switch 문을 조금더 편리하게 만든기능으로,
if가 참과 거짓만을 비교 할 수 있는 반면 when은 하나의 변수를 여러개의 값과 비교할 수 있다.
when (비교할 parameter) {
조건값 -> 실행문
}
위와같은 방식으로 구문을 작성하며 아래의 소스코드를 예로 확인해보자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
fun main(){
doWhen(1) // 정수 1입니다.
doWhen("안녕") // 아무것도 만족하지 않습니다.
doWhen(3.5) // String이 아닙니다.
}
fun doWhen (a: Any){
when(a) {
1 -> println("정수 1입니다.")
"Gyu" -> println("저는 Gyu Engineer 입니다.")
is Long -> println("long 타입 입니다.")
!is String -> println("String 아닙니다.")
else -> println("아무것도 만족하지 않습니다.")
}
}
|
cs |
여기에서 쓰인 Any 라는 자료형은 어떤 자료형에도 호환이 될수 있는 코틀린의 최상위 자료형이다.
또한 조건값은 숫자형,문자형, 연산자 등이 사용 가능하다. 어떤 조건값에도 맞지 않을경우 else 를 사용할수 있고,
여러개의 조건이 맞는경우에는 가장 먼저 맞은조건이 실행된다.
또한 아래 소스코드 처럼 동작대신 값을 반환하는 표현식으로서의 역할을 하게 할 수 있다.
1
2
3
4
5
6
7
8
|
fun doWhen (a: Any){
var result = when(a) {
1 -> "정수1입니다."
"Gyu" -> "Gyu 입니다."
else -> "아무것도아닙니다."
}
println(result)
}
|
cs |