[코틀린 문법] 조건식과 비교연산자
If
// If Expression(If 표현식) //
// 참/거짓 판별
var a = 3
var b = 5
var aIsBigger = false
// if -> 조건을 만족할 때
if (a > b) {
// a가 b보다 크면 true 출력
aIsBigger = true
// else -> 조건을 만족하지 못할 때
} else {
// a가 b보다 크지 않으면 false 출력
aIsBigger = false
}
println(aIsBigger)
// false
// 변수 설정
val aIsBigger2 = if (a > b) {
true
} else {
false
}
println(aIsBigger2)
// false
// 실행할 구문이 하나라면
// 이렇게 축약 가능(aIsBigger2와 동일)
val aIsBigger3 = if (a < b) true else false
println(aIsBigger3)
// true
fun aorb(a : Int, b : Int) : Int {
if(a > b) {
return a
} else {
return b
}
}
// 코틀린은 3항연산자가 없기 때문에 아래와 같이 표현함
fun aorb2(a : Int, b : Int) = if(a > b) a else b
// 코틀린은 자동으로 타입을 추론 -> (a : Int, b : Int) 뒤에 : Int 생략됨
// if + else 조합이 보통임
var studentScore1 = 100
if (studentScore1 >= 150) {
println("150 이상")
} else {
println("150 이상이 아님")
}
// 150 이상이 아님
// if 구문을 여러 개 써도 됨
// 둘 중 하나만 해당 -> 하나만 출력
var studentScore2 = 50
if (studentScore2 > 50) {
println("50 초과")
}
if (studentScore2 >= 50) {
println("50 이상")
}
// 50 이상
// 둘 다 해당 -> 둘 다 출력
var studentScore3 = 65
if (studentScore3 < 70) {
println("70미만")
}
if (studentScore3 <= 70) {
println("70이하")
}
// 70미만
// 70이하
// 여러 조건 중 하나만 얻어걸리면 된다 -> if else 사용
var studentScore4 = 40
if (studentScore4 > 100) {
// 처음은 무조건 if
println("100보다 큼")
} else if (studentScore4 > 50) {
// if 말고 다른 조건은 else if
println("50보다 큼")
} else if (studentScore4 > 30) {
println("30보다 큼")
} else {
// 맨 마지막 쩌리는 else
println("30보다 작음")
}
// 30보다 큼
// 간단한 조건문을 이용한 문제풀이
// 학생의 A B C D F 점수를 출력
var score2 = 80
// 학생의 점수가
// 100 초과 == A
// 90 초과 == B
// 80 초과 == C
// 70 초과 == D
// 70 이하 == F
if (score2 > 100) {
println("A")
} else if (score2 > 90) {
println("B")
} else if (score2 > 80) {
println("C")
} else if (score2 > 70) {
println("D")
} else {
println("F")
}
// D
Comparison Operators(비교연산자)
// Comparison Operators(비교연산자) //
// 부등호(>, >=, <, <=)
// 등호(!=, ==)
// 할당 연산자(=)
// is 연산자(is, !is)
// a = b
// b를 a에 할당한다
var lucky = 7
// 7이라는 값을 lucky라는 변수에 넣겠다는 뜻
// a == b
// a는 b와 같다
if (lucky == 7) {
println("seven")
}
// seven
// a != b
// a는 b와 같지 않다
if (lucky != 13) {
println("not bad")
}
// not bad
// a > b
// a는 b보다 크다
// a >= b
// a는 b보다 크거나 같다
var score1 = 100
if (score1 >= 150) {
println("150 이상")
} else {
println("150 이상이 아님")
}
// 150 이상이 아님
// a < b
// a는 b보다 작다
// a <= b
// a는 b보다 작거나 같다
var score2 = 70
if (score2 < 140) {
println("140미만")
}
if (score2 <= 70) {
println("70이하")
}
// 140미만
// 70이하
// a is String
// a의 자료형은 String이다
var type1 : Any = "abc"
if(type1 is String) {
println("this is string")
} else {
println("this is not string")
}
// this is string
// a !is Int
// a의 자료형은 Int가 아니다
var type2 : Any = "abc"
if(type2 !is Int) {
println("this is not int")
} else {
println("this is int")
}
// this is not int
// is 연산자는 나중에 재등장
When
// When Expression(when 표현식) //
// switch문을 좀 더 편리하게 바꾼 기능
// 하나의 변수를 여러 개의 값과 비교 가능
// 등호, 부등호 사용 불가
// 여러 조건에 부합해도 제일 처음 만족하는 구간에서 실행 종료
fun main() {
// 조건 만족하는 구간에서 실행 종료
var score1 = 90
when(score1) {
100 -> {
println("100")
}
90 -> {
println("90")
}
// 복수로 조건 걸기 가능
80,70 -> {
println("80 or 70")
}
else -> {
println("no")
}
}
// 90
var score3 = 78
when(score3) {
100 -> {
println("Perfect!")
}
// 범위 설정 가능
in 90..99 -> {
println("Great!")
}
in 80..89 -> {
println("Good!")
}
in 70..79 -> {
println("Ok!")
}
else -> {
println("Well...")
}
}
// OK!
doWhen(1)
// 1 만족 -> 종료
// (!is String도 만족)
doWhen(1L)
// is Long 만족 -> 종료
// (!is String도 만족)
doWhen(1.1)
// !is String 만족 -> 종료
doWhen("shinyelee")
// "shinyelee" 만족 -> 종료
doWhen("shinye")
// else 만족 -> 종료
}
// Any 자료형은 나중에 재등장
// 조건문.ver
//fun doWhen (a: Any) {
// when(a) {
// 1 -> println("1")
// "shinyelee" -> println("my name")
// is Long -> println("long type"
// !is String -> println("not string")
// // else 생략 가능
// else -> println("else")
// }
//}
// 표현식.ver
fun doWhen (a: Any) {
var result = when(a) {
1 -> "1"
"shinyelee" -> "my name"
is Long -> "long type"
!is String -> "not string"
// else 생략 불가
else -> "else"
}
println(result)
}
fun main() {
// 코틀린에서는 switch 대신 when 표현식으로
var cardInt = 11
when (cardInt) {
11 -> println("Jack")
12 -> println("Queen")
13 -> println("King")
}
// if랑 마찬가지로 변수 설정 가능
// else 까먹지 않기
val cardInt2 = 14
val cardName = when (cardInt2) {
11 -> "Jack"
12 -> "Queen"
13 -> "King"
else -> "Other"
}
println(cardName)
}
참고
반응형
'개발(Android) > kotlin syntax' 카테고리의 다른 글
[Kotlin syntax] Break, Continue, Logical Operators (0) | 2022.04.04 |
---|---|
[Kotlin syntax] While, Do While, For, Increment Operators, Decrement Operators (0) | 2022.04.03 |
[Kotlin syntax] Type Inference, Functions, Arithmetic Operators (0) | 2022.03.31 |
[Kotlin syntax] Type Casting, Arrays (0) | 2022.03.31 |
[Kotlin syntax] Variables, Data Types (0) | 2022.03.31 |