반응형
1. If
저번에 쓰여진 코드를 다시 보자.
var currentBottleContent = 600
var currentGlassContent = 50
val maxGlassContent = 130
val toBeFilled = maxGlassContent - currentGlassContent //채워져야 할 양
currentGlassContent += toBeFilled
currentBottleContent -= toBeFilled
여기서 눈치챘겠지만 이 코드엔 문제가 있다. 코드를 보면 무조건 잔은 채워지고, 그 채워진 만큼 병 속의 물의 양이 줄어드는데, 만일 병에 있던 물의 양이 그 채워져야 할 양보다 적다면, 성립할 수가 없게 된다.
병에 있던 물의 양이 50ml 였다면.. 결과는 다음과 같을 것이다.
잔의 물은 채워져있지 말아야 하는데 채워져있고, 병 속 물의 양은 마이너스값이 되어버린다.
여기서 우리는 병의 물의 양이 잔을 채울 만큼 충분히 있을 경우에만 잔의 물이 다 채워진다랑 그렇지 않을 경우엔 그냥 병의 물 만큼만 잔에 채워준다 라는 두개의 상황을 나눠서 생각하게 된다.
이렇게 상황을 나눠야 할 때 If 를 사용하면 된다.
/*Syntax of if...else*/
if (condition) {
// codes to run if condition is true
}
else {
// codes to run if condition is false
}
fun main (args : Array <String>) {
var currentBottleContent = 50
var currentGlassContent = 50
val maxGlassContent = 130
val toBeFilled = maxGlassContent - currentGlassContent //잔에 채워져야 할 양
if(currentBottleContent >= toBeFilled){ //상황1. 병의 물이 잔을 가득 채울 만큼 충분
currentGlassContent += toBeFilled
currentBottleContent -= toBeFilled
}else{ //상황2. 충분하지 않음
currentGlassContent += currentBottleContent
currentBottleContent = 0
}
println("현재 잔의 물의 양은 $currentGlassContent ml입니다." )
println("현재 병의 남은 물의 양은 $currentBottleContent ml입니다." )
}
자바나 다른 프로그래밍 언어들과 달린 코틀린에서 if 문은 값을 반환할 수가 있다.
예)
import kotlin.random.Random
fun main (args : Array <String>) {
val a = Random.nextInt(0,25) //0~25의 숫자들 중 한 수가 변수 a에 할당된다.
val b = Random.nextInt(0,25)
val bigger = if (a > b) a else b
/* 8번줄은 이렇게 쓰는 거랑 같음.
val bigger : Int
if( a > b){
max = a
}else{
max = b
}
*/
println("$a 와 $b 중 더 큰 수는 $bigger.")
}
fun main(args: Array<String>) {
val number = 0
val result = if (number > 0) "양수"
else if (number < 0) "음수"
else "0"
println("number is $result")
}
2. When
코틀린에서 when 키워드는 Pattern-Matching을 담당하며 java의 스위치문과 비슷하다.
예)
fun main(args: Array<String>) {
val a = 12
val b = 5
println("+,-,*,/ 중 하나를 입력하세요")
val operator = readLine()
when (operator) {
"+" -> println("$a + $b = ${a + b}")
"-" -> println("$a - $b = ${a - b}")
"*" -> println("$a * $b = ${a * b}")
"/" -> println("$a / $b = ${a / b}")
else -> println("$operator 는 유효하지 않는 연산자입니다.")
}
}
fun main(args: Array<String>) {
val age : UInt = 23u
val ageGroup = when (age) {
in 0u..1u -> "아기"
in 2u..6u -> "아이"
in 7u..13u -> "어린이"
in 14u..19u -> "청소년"
else -> "어른"
}
println(ageGroup)
}
fun main(args: Array<String>) {
val month = Random.nextInt(1,12)
val season = when (month) {
12, 1, 2 -> "겨울"
3, 4, 5 -> "봄"
6, 7, 8 -> "여름"
9, 10, 11 -> "가을"
else -> "-"
}
println(seaseon)
}
출처:
내용: 학교 교수님 (Christian Kohls) 강의,
728x90
반응형
'언어 > Kotlin' 카테고리의 다른 글
Kotlin : 객체 (Object) (0) | 2022.06.24 |
---|---|
Kotlin : 함수 선언과 호출 (0) | 2022.06.18 |
Kotlin : 변수 var 과 val (0) | 2022.06.16 |
Kotlin 기초 : 자료형 (Data type) (0) | 2022.06.15 |
Kotlin 기초 : 표현식 (Expression)과 문 (Statement) (0) | 2022.06.12 |