본문 바로가기
Kotlin

Kotlin - 제어문

by 봄석 2019. 1. 3.

Kotlin - 제어문


제어문은 크게 if, when, for, while의 4가지로 나뉩니다. When문은 제외하고는 자바와 거의 같습니다


1) if

실행할 문장이 한 줄이면 블록을 생략할 수 있습니다.

if -else 문의 사용법도 자바와 완전히 같습니다.

위와 같이 if문 식처럼 사용할 수도 있습니다.


2) when

when문은 자바의 switch문에 대응합니다. when문을 사용하는 다양한 방법은 다음과 같습니다.

값이 하나인 경우는 물론 콤마( , ) 나 in 연산자로 값의 범위를 자유롭게 지정하는 것이 특징입니다. 그 밖의 경우에는 else를 사용하여 나머지에 대한 경우를 처리합니다. 코드를 작성할 때 블록으로 코드를 감쌀 수 있습니다.

val x= 1
 
when(x){
    1->println("x == 1")            //값 하나
    2,3->println("x == 2 or x == 3")//여러 값은 콤마로
    in 4..7->println("4부터 7 사이")//in 연산자로 범위지정
    !in 8..10->println("8부터 10 사이가 아님")
    else->// 나머지
        print("x는 1이나 2가 아님")
    }
}



when문 역시 if문과 마찬가지로 식처럼 사용할 수 있습니다

val number= 1
 
val numStr= when (number%2){
    0->"짝"
    else->"홀"

}



when문의 결과를 함수의 반환 값으로 사용할 수도 있습니다.

val number=1
 
fun isEven(num:Int) = when(num%2){//결과가 String 으로 추론되어
                                    //반환형 생략가능능
    0->"짝"
    else->"홀"
}
 

println(isEven(number)) // 홀



3) for

for문은 배열이나 컬렉션을 순회하는 문법으로 자바의 foreach문과 비슷합니다. 

다음은 1부터 5까지 담겨 있는 배열을 순회하며 모든 요소를 프린트하는 for 문의 예입니다.

in 키워드를 사용하여 모든 요소를 num변수로 가져옵니다.

val numbers=arrayOf(1,2,3,4,5)
for(num in numbers){
    println(num)

}


그 밖에도 아래와 같이 다양한 사용법이 있습니다. 증가 범위는 .. 연산자를 사용합니다.

감소 범위는 downTo 키워드를 사용하며 step 키워드로 증감의 간격을 조절할 수 있습니다.

//1~3까지 출력
for(i in 1..3){
    println(i)
}
 
//0~10까지 2씩 증가하면 출력
for(i in 0..10 step 2){
    println(i)
}
 
//10부터 0 까지 2씩 감소하며 출력
for(i in 10 downTo 0 step 2){
    println(i)

}




4) while

while문은 주어진 조건이 참 일때 반복하는 문법입니다. while문의 변형으로는 무조건 한 번은 실행된다는 do while문이 있습니다. 아래 두 코드는 동일한 결과를 냅니다. 

코틀린의 while문과 자바의 do while문은 자바와 완전히 동일합니다.

//while
var num=10
while(num>0){
    num--
    println(num)
}
 
//do while
num=10
do{
    num --
    println(num)

}while(num>0)



'Kotlin' 카테고리의 다른 글

Kotlin - 프로퍼티, 접근제한자  (0) 2019.01.03
Kotlin - 클래스  (0) 2019.01.03
Kotlin - 기본 자료형,배열  (0) 2019.01.03
Kotlin - 기본 구문(변수와 상수, 함수)  (0) 2019.01.01
Kotlin - Scratch 사용하기  (0) 2019.01.01

댓글