📱 안드로이드 Android ~ Kotlin

[Kotlin/코틀린] 2 - 조건문과 반복문

핑크빛연어 2022. 2. 4. 15:38

 

🚨 조건문

 

if  문 (if~ else~)

    val a: Int = 3
    val b: Int = 4
    
    var data1: Int
    if(a > b) {
        data1 = a
    } else {
        data1 = b
    }
    println("data1 : $data1")  // => data1 : 4


    val data2 = if(a > b) {
        a
    } else {
        b
    }
    println("data2 : $data2")  // => data2 : 4


    val data3 = if(a > b) a else b
    println("data3 : $data3")  // => data3 : 4

 

when

- 코틀린(Kotlin)는 switch 문이 없는 대신 when 문이 존재한다

    var data1: Any = 5
    when(data1) {
        is String -> println(" is Str ")  //data1 가 String 형 타입인 경우
        20, 30 -> println(" data1==20 or data1==30 ")  //data1 가 20 또는 30 인 경우
        in 1..10 -> println(" data 가 1~10 값 안에 있음 ")  //data1 가 1~10 의 값 범위 안에 있는 경우
        else -> println(" else ")
    }
    
    var data2 = "hello"
    when(data2) {
        "hello" -> println(" data2 is hello ")
        "world" -> println(" data2 is world ")
        else -> println("data2 is not valid data ")
    }
    
    var x = 10
    when(x) {
        1 -> println(" x == 1 ")
        2 -> println(" x==2 ")
        else -> {
            println(" x is neither 1 nor 2 ")
        }
    }

    when(x) {
        0, 1 -> println(" x==0 or x==1 ")
        else -> println(" otherwise ")
    }

    when(x) {
        in 1..10 -> println(" x 는 1부터 10 범위 안에 있음 ")
        !in 10..20 -> println(" x 는 10부터 20 범위 안에 없음 ")
        else -> println(" otherwise ")
    }

    when(x) {
        is Int -> println(" x 는 Int 형 ")
        else -> println(" x 는 Int 형이 아님 ")
    }

 

 

🚨 반복문

 

for

    /* i가 1(포함)~5(포함)까지 1씩 중가 반복 */
    for(i in 1..5) {  
        print("$i ")  // => 1 2 3 4 5
    }
    
    /* i가 6(포함)~0(포함)까지 2씩 감소 반복 */
    for(i in 6 downTo 0 step 2) {  
        print("$i ")  // => 6 4 2 0
    }
    
    /* i가 1(포함)~10(포함)까지 3씩 감소 반복 */
    for(i in 1..10 step 3) { 
        print("$i ")  // => 1 4 7 10
    }
    
    /* i가 0(포함)~10(미포함)까지 1씩 증가 반복 */
    for(i in 0 until 10) { 
        print("$i ")  // => 0 1 2 3 4 5 6 7 8 9
    }

 

- indices : 컬렉션 타입의 인덱스값을 의미

 /* data.indices  
    *  - indices 는 컬렉션 타입의 인덱스값을 의미
    * */	
    val data = arrayOf<Int>(10, 20, 30)
    for(i in data.indices) {  //for 문을 반복하면서 0,1, 2 값을 i 에 대입함
        print(data[i])
        if(i !== data.size -1)
            print(",")
    }
    
=> 10, 20, 30

 

- withIndex() : 인덱스와 실제 데이터를 함께 가져올 때 사용

 /* data.withIndex()
    *  - withIndex 는 인덱스와 실제 데이터를 함께 가져올 떄 사용
    * */
    val data = arrayOf<Int>(10, 20, 30)
    for((index, value) in data.withIndex()) {
        print(value)
        if(index !== data.size -1)
            print(",")
    }
    
=> 10, 20, 30

 

while

- 조건이 참이면 중괄호 { .. } 로 지정한 영역을 반복해서 실행

    var x = 0
    var sum = 0
    wwhile(x < 10) {
        sum += ++x
    }
    println(sum)  // => 55

 

- while : 조건을 먼저 보고 구문을 실행
- do while : 구문을 먼저 보고 돌릴지 조건을 보는 것

    var x = 5
    while (x > 0) {
        print("$x ")
        x--
    }
    // => 5 4 3 2 1 

    x = 0
    while (x > 0) {
        print("$x ")
        x--
    }
    // => 출력값 없음

    var y = 0
    do {
        print(y)
        y--
    } while (y > 0)
    // => 0

 

 

감사합니당~:)

더보기
Kotlin/코틀린
728x90
반응형