Kotlin 기초 : 조건문

정종욱·2023년 7월 4일
0

Kotlin

목록 보기
5/16
post-thumbnail

If문

Java 표현식

private void validate(int score) {
	if (score < 0) {
    	throw new BusinessException("에러");
    }
}

Kotlin 표현식

fun validate(score: Int) {
	if (score < 0) {
    	throw BusinessException("에러")
    }
}

코틀린에서 void 와 인스턴스화 할 때 new 생략

Expression과 Statement

Java 표현식

private String getPassOrFail(int score) {
	if (score >= 50) {
    	return "P";
    } else {
    	return "F";
    }
}

Kotlin 표현식

fun getPassOrFail(score: Int): String {
	if (score >= 50) {
    	return "P"
    } else {
    	return "F"
    }
}

자바에서 if-else 는 Statement, 코틀린에서는 Expressiond 이다.

  • Statement : 프로그램의 문장, 하나의 값으로 도출되지 않는다
  • Expression: 하나의 값으로 도출되는 문장

차이를 알아보자

int score = 30 + 40;

30 + 40은 70이라는 하나의 결과가 도출된다.
Expression 이면서 Statement이다.

String grade = if (score >= 50) {
	"P";
} else {
	"F";
}

if else 를 = 으로 한다면 에러가 발생한다.
왜냐하면 if문을 하나의 값으로 취급하지 않기 때문이다.
위 문장이 Statement이다.

String grade = score >= 50 ? "P" : "F";

대표적인 예로 3항 연산자는 if-else 문을 바로 반환할 수 있는 Expression 이다.

fun getPassOrFail(score: Int): String {
	return if (score >= 50) {
    	return "P"
    } else {
    	return "F"
    }
}

코틀린은 Expression 이라서 위와 같이 if-else문을 바로 반환할 수 있다.
그러므로 3항연산자가 존재하지 않는다.

👏 TIP : 코틀린에서 범위를 나타내는 경우 if (score in 0..100) {} 으로 표기할 수 있다.
in 앞에 ! 를 붙여 반대의 조건을 설정할 수 있다.

Switch와 when

 switch (score / 10) {
	case 9:
    	return "A";
        ...
    default:
    	return "D";
}
return when (score) {
	in 90..99 -> "A"
    // 조건부 (Expression 가능) -> 어떠한 구문 (Expression 가능)
    ...
    else -> "D"
}

코틀린에서 조건부에는 어떠한 Expression 이라도 들어갈 수 있다.

0개의 댓글

관련 채용 정보