Seongwon Lim

[Android] 코틀린(Kotlin)에서 조건문&반복문 사용 방법 본문

Android

[Android] 코틀린(Kotlin)에서 조건문&반복문 사용 방법

limsw 2022. 6. 17. 14:21
반응형

서론

이번 글에서는 코틀린을 이용하여 반복문(for, while)과 조건문(if, switch)을 사용하는 방법을 간단하게 다뤄보고자 한다.

 

글의 목차는 다음과 같다.

  • 조건문 if 사용법
  • 조건문 switch 사용법
  • 반복문 for 사용법
  • 반복문 while 사용법

코틀린에서 조건문 if 사용 방법

먼저 코틀린 문법을 사용하기 전에 자바를 사용할 때 if문은 다음과 같이 사용할 수 있다.

int maxNum(int a, int b) {
    if(a > b) {
        return a
    } 
    else {            
        return b
    }
}

if 조건문은 코틀린 문법에서도 크게 다르지 않다. 코틀린을 이용하면 다음과 같이 작성할 수 있다.

// 첫번째 표현
fun maxNum(a : Int,B : Int) : Int {
	if(a>b) {
		return a
	}
	else {return b}
}

// 다른 표현
fun maxNum(a : Int, b : Int) = if(a>b) a else b

첫번째 표현의 경우는 자바와 크게 다를 것이 없다. 그러나, 두번째 표현의 경우에는 자바와 조금 다른 것을 확인할 수 있는데 위처럼 {} 기호를 사용하지 않더라도 = 연산자를 통해 조건을 정의하고 값을 리턴할 수 있다.

 

변수를 정의할 때에도 두번째 표현을 사용할 수 있다. 예를 들어,

var n:Int = 100
var result = if(n==100) { 1 } else { 0 }

위와 같은 코드가 있을 때 result 변수를 위와 같이 정의할 수 있다.

코틀린에서 조건문 switch 사용 방법

코틀린에서는 switch 라는 문법을 사용하지 않고 대신에 when 이라는 문법을 사용한다.

fun checkNum(score : Int) {
// type1, 단순 리턴 혹은 출력을 하는 경우
	when(score) {
		0 -> println("this is 0")
		1 -> println("this is 1")
		2,3 -> println("this is 2 or 3")
		else -> println("i don't know") // 없어도 실행 가능
	}

// type2, 조건문을 통해 특정 변수를 정의하는 경우
	var b = when(score) {
		1 -> 1
		2 -> 2
		else -> 3 // 이렇게 할당할 때에는 else가 반드시 필요하다.
	}
// type3, score 변수의 값에 범위를 지정하는 경우
	when(score) {
		in 90..100 -> println("Excelent")
		in 50..89 -> println("Good")
		else -> println("Bad") // 없어도 실행 가능
	}
}

코틀린에서 반복문 for 사용 방법

fun forAndWhile() {
    // ArrayList 반복문
    val students = arrayListOf("lim","kim","park","choi")
    for(name in students) {
        println("${name}") // lim, kim, park, choi
    }
	
    // index 반복문
    var sum = 0
    for(i in 1..10) {
        sum += i
    }
    println(sum) // 55
}

리스트 순회는 자바 문법과 크게 다르지 않지만 인덱스(i)를 이용한 반복문은 자바와 조금 다른 것을 확인할 수 있다.

int sum() {
    int sum = 0
    for(int i=0; i<=10; i++) {
        sum += i;
    }
    
    return sum;
}

보통 자바의 경우에는 이런 식으로 선언하는 반면에 코틀린의 경우는 1..10 처럼 점을 이용해서 범위를 지정한다.

또한, ..은 eqaul(=)을 포함하므로 <= 의 의미와 같다고 볼 수 있다.

반복문 for 또 다른 표현

for(i in 1..10 step 2) -> 1,3,5,7,9
for(i in 10 downTo 1) -> 10부터 1까지
for(i in 1 until 100) -> 1~99까지 (100 포함하지 않음)

step, downTo, until과 같은 명령어를 통해서도 다양하게 반복문에 조건을 걸어 활용할 수 있다.

반복문 for 에서 2개의 변수 사용하는 방법

val students = arrayListOf<Any>("lim","kim","choi","park")

    for((index, name) in students.withIndex()) {
        println("${index+1}번째 학생 : ${name}")
    }

위 코드처럼 withIndex()를 이용하면 인덱스 값과 데이터를 한꺼번에 받을 수 있다. 코드 실행 결과는 다음과 같다.

코틀린에서 반복문 while 사용 방법

var index = 0
while(index < 10) {
    println("Current index : ${index}")
    index++ 
}

코틀린에서 while문을 사용하는 것은 자바 문법과 크게 다르지 않다.

 

그리고 자바에서 do-while문도 코틀린에서 동일하게 사용할 수 있다.

var index = 0
var sum = 0

do {
    println("Current index : ${index}")
    sum += index
    index++
} while(index <= 10)

println("result : ${sum}") // 55
Comments