THINK HARD

코틀린 기본(2) - 제어문 본문

안드로이드/공부

코틀린 기본(2) - 제어문

HEEJUNDID 2025. 9. 14. 21:40
728x90
반응형

제어문

범위 클래스

범위 클래스로는 IntRange, LongRange, CharRange 등이 있다.

val numRange: IntRange = 1..5
println(numRange.contains(3)) // true
println(numRange.contains(10)) // false

알파벳의 범위

val charRange: CharRange = 'a'..'e'
println(charRange.contains('b')) // true
println(charRange.contains('z')) // false

for문

예시1)

for (i in 1..5) {
    println(i) // 1, 2, 3, 4, 5
}

예시2)

//역순으로 출력시
for (i in 5 downTo 1) {
    print(i) // 5, 4, 3, 2, 1
}

예시3)

// 2씩 증가하는 걸로 하려면
for (i in 1..10 step 2) {
    println(i) // 1, 3, 5, 7, 9
}

예시4)

//배열의 출력
val students = arrayOf("a", "b", "c", "d", "e")

for (name in students) {
    println(name) // a, b, c, ,d, e
}

withIndex() 함수를 이용하면 인덱스와 요소를 함께 가져올 수 있다.

// 인덱스와 요소를 함께
for((index, name) in students.withIndex()){
    println("Index : $index Name : $name")
}
// 결과
//Index : 0 Name : a
//Index : 1 Name : b
//Index : 2 Name : c
//Index : 3 Name : d
//Index : 4 Name : e

while문

while 문

var num = 1

while (num < 5) {
    println(num) // 1,2,3,4 출력
    num++ // 1씩 증가
}

do while문 - 최초 1회는 무조건 실행

// 최초 한번은 무조건 실행
var num = 1
do {
    num++
    print(num) // 2, 3, 4 출력
}while (num < 5)

if 문

if문은 자바와 같다.

예시1)

val examScore = 60
var isPass = false

if (examScore > 80) {
    isPass = true
}

println("시험 결과 : $isPass") // 시험 결과 : false

if- else

예시1)

val examScore = 99
if (examScore == 100) {
    println("만점 O")
} else {
    println("만점 X")
}

if 문을 아래와 같은 표현식으로도 사용 가능하다. 일반적인 명령문(statement)은 어떤 동작(action)을 수행하는데 반해, 표현식(expression)은 하나의 값(value)으로 평가되는 것이다.

변수에 값을 할당할 때는 반드시 else문이 필요하다.

val myAge = 40
val isAdult = if(myAge > 30) true else false

println("성인 여부 : $isAdult") // 성인 여부 : true

when문

코틀린에는 값에 따라 분기하여 코드를 실행하는 switch문은 없다. 대신 when문이 있다.

val weather = 15
when (weather) {
    -20 -> {println("매우 추운 날씨")} // 값이 하나인 경우
    11, 12, 13, 14 -> {println("쌀쌀한 날씨")} // 값이 여러개인 경우
    in 15..26 -> {println("활동하기 좋은 날씨")} // 값이 범위인 경우
    
    // 범위 안에 안들어가는 경우
    !in -30..50 -> {println("잘못된 값입니다. -30 ~ 50 가운데 값을 적어주세요")}
    else -> {println("잘 모르는 값")} // 위의 경우가 모두 아닌경우
}

값으로 무엇을 넣느냐에 따라 출력되는 값이 다르다. 마지막 else문을 보면 아무것도 해당되지 않을 떄 실행할 코드를 작성할 수 있다.

if 문과 마찬가지로 when문도 값을 반환하는 표현식으로 사용할 수 있다. 값을 무조건 할당해야 하므로 else문이 필수다.

val essayScore = 95
val grade = when (essayScore) {
    in 0..40 -> "D"
    in 41..70 -> "C"
    in 71..90 -> "B"
    else -> "A"
}

println("에세이학점 : $grade") //에세이학점 : A
728x90
반응형