조건문 ( IF, WHEN )

Leechaeyeon·2023년 5월 15일
0
post-thumbnail

제어문

  • 프로그램 코드는 위에서 아래로!
  • 흐름을 변경하고자 할 때 사용
  • 제어문은 분기문과 반복문으로 구분

IF 문

  • 주어진 조건에 따라 작성된 코드 수행 여부를 결정하는 구문
  • java와 거의 동일
  • if문
    if ( 조건식 ) {
    		코드 
    } 
  • if else문
    if ( 조건식 ) { 
    
    } 
    else { 
    
    } 
  • if elseif 문
    if ( 조건식 1 ) {
    
    } 
    else if( 조건식 2 ) {
    
    }
    else {
    
    } 

IF문을 활용한 변수 값 설정

  • 조건식의 결과에 따라 변수에 값을 저장
    var test1:String = ""
    val test2:Int = 10;

    if(test2 == 10){
        test1 = "10 입니다"
    } else {
        test1 = "10이 아닙니다"
    }
    println("test1 : $test1")
val test2:Int = 10

val test3:String = if (test2 == 10) "10 입니다" else "10이 아닙니다"
    println("test3 : $test3")

when

Java에 Switch가 있다면 kotlin에는 대신 when이 있다.

  • 기본 사용법
when( 변수 or 수식  ) {1 -> 코드 
	값2 -> 코드 
}
val a1 = 10
    
    when(a1){
        // 수행될 코드가 한줄만 있다면 { }를 생략한다.
        1 -> println("a1은 1입니다")
        // 수행될 코드가 두 줄 이상이면 { }로 묶어준다.
        5 -> {
            println("a1은 5입니다")
            println("코드가 두 줄")
            println("코드가 세 줄")
        }
        10 -> println("a1은 10입니다")
        else -> println("a1은 1, 5, 10이 아닙니다")
    }
  • 두 가지 이상의 조건 만족
    val a2 = 3
        when(a2){
            1, 2 -> println("a2는 1이거나 2입니다")
            3, 4 -> println("a2는 3이거나 4입니다")
            5, 6 -> println("a2는 5이거나 6입니다")
            else -> println("a2는 1, 2, 3, 4, 5, 6이 아닙니다")
        }

→ 문자열, 실수, 정수 가능 | 논리값 ❌ 불가능

  • 범위 지정
    val a5 = 5
    when(a5){
        in 1..3 -> println("a5는 1부터 3사이입니다")
        in 4..6 -> println("a5는 4부터 6사이입니다")
        in 1..6 -> println("a5는 1부터 6사이입니다")
        else -> println("a5는 1 ~ 6사이의 숫자가 아닙니다")
    }
  • 함수와 같이 사용
fun 함수명(변수) = when(변수){1 -> 코드 
		값2 -> {
				코드 
		}
		else -> 코드 

}
fun main(){
	val str1 = setValue(4)
	print(str1)

}

fun setValue(a1:Int) = when(a1){
    1 -> "문자열1"
    2 -> {
        println("두 번째 경우의 수")
        "문자열2"
    }
    else -> "그 외의 문자열"
}

0개의 댓글