5장. 코틀린에서 제어문을 다루는 방법
2023. 9. 7. 01:19ㆍkotlin/문법
참고
- 해당 내용은 인프런에서 강의를 요약한 내용입니다. 강의보러가기
목차
- if 문
- Expression과 Statement
- Switch와 When
if문
- Java와 다를게 없다!!
Java
private void validateScoreIsnotNegative(int score) {
if ( score < 0) {
throw new IllegalArgumentException(String.format("%s는 0보다 작을 수 없습니다.", score));
}
}
kotlin
fun validateScoreIsnotNegative(score: Int) {
if (score < 0) {
throw IllegalArgumentException("${score}는 0보다 작을 수 없다.")
}
}
또 다른예시
Java
private String getPassOrFail(int score) {
if ( score >= 50) {
return "P";
} else {
return "F";
}
}
Kotlin
fun getPassOrFail(socre: Int): String {
if (score >= 50) {
return "P";
} else {
return "F";
}
}
차이점
- Java에서 if-else는 Statement이지만, Kotlin에서는 Expression 이다!!
- Statement: 프로그램의 문장, 하나의 값으로 도출 x
- Expression: 하나의 값으로 도출되는 문장
Expression & Statement 예시
Kotlin
fun getPassOrFail(score: Int): String {
return if (score >= 50){
"P"
} else {
"F"
}
}
fun getGrade(score: Int): String {
return if (score >= 90) {
"A"
} else if (socre >= 80) {
"B"
} else if (score >= 70) {
"C"
} else {
"D"
}
}
간단 Tip
Java
if (0 <= score && score <= 100) {
...
}
Kotlin
if (score in 0..100) {
...
}
Switch와 When
Kotlin
fun getGradeWithSwitch(score: Int): String {
return when (score / 10) {
9 -> "A"
8 -> "B"
7 -> "C"
else -> "D"
}
}
fun getGradeWithSwitch2(score: Int): String {
return when (score) {
in 90..99 -> "A"
in 80..89 -> "B"
in 70..79 -> "C"
else -> "D"
}
}
정의
when (값) {
조건부 -> 어떠한 구문
조건부 -> 어떠한 구문
else -> 어떠한 구문
}
- 조건부에는 어떠한 expression 이라도 들어갈 수 있다.
- 조건부에는 여러개의 조건을 동시에 검사할 수 있다. (, 로 구분!!)
- "값" 이 없을 수도 있다. → early return 처럼 동작한다.
예시
Java
private boolean startsWithA(Object obj) {
if (obj instanceof String) {
return ((String) obj).startsWith("A");
} else {
return false;
}
}
Kotlin
fun startsWithA(obj: Any): Boolean {
return when (obj) {
is String -> obj.startsWith("A")
else -> false
}
}
Java
private void judgeNumber(int number) {
if (number == 0 || number == 1 || number == -1) {
System.out.println("블라블라");
} else {
System.out.println("블라블라");
}
}
Kotlin
fun judgeNumber(number: Int) {
when (number) {
1, 0, -1 -> println("블라블라")
else -> println("블라블라블라")
}
}
Java
private void judgeNumber(int number) {
if (number == 0) {
System.out.println("블라블라");
return;
}
if (number % 2 == 0) {
System.out.println("블라블라");
return;
}
System.out.println("블라블라");
}
Kotlin
fun judgeNumber(number: Int) {
when { //값 부분이 없다.
number == 0 -> println("블라블라")
number % 2 == 0 -> println("블라블라")
else -> println("주어지는 숫자는 블라블라")
}
}
'kotlin > 문법' 카테고리의 다른 글
8장 코틀린에서 함수를 다루는 방법 (2) | 2024.01.14 |
---|---|
7장 코틀린에서 예외를 다루는 방법 (0) | 2024.01.14 |
코틀린에서 null을 다루는 방법 (3) | 2023.06.05 |
코틀린에서 변수를 다루는 방법 (0) | 2023.06.05 |