Control Flows
1️⃣ if-else
☕️ Java
public class Main {
public static void main(String[] args) {
int number = 15;
if (number % 2 == 0) {
System.out.println("Even Number");
} else {
System.out.println("Odd Number");
}
}
}
🔷 Kotlin
fun main() {
val number = 15
// if-else를 표현식으로 사용 가능
val result = if (number % 2 == 0) "Even Number" else "Odd Number"
// 사칙연산도 가능
val number = (if (true) 10 else 20) + 20
println(result)
println(number)
}
- 코틀린에서는 if 문을 표현식(expression)으로 사용할 수 있습니다.
- 코틀린에는 삼항연산자가 없습니다. 삼항연사자는 값을 반환하는 표현식이 필요할 때 사용하는데, 코틀린 if 문은 이미 표현식 입니다.
- 표현식(Expression) : 값을 반환하는 코드 (ex. 10 + 5, if (a > b) a else b)
- 문(Statement) : 값을 반환하지 않고, 동작만 수행하는 코드 (ex. if (a > b) { println(a) }, for (i in 1..10) {})
📌 if-else 공식 문서 1
https://play.kotlinlang.org/byExample/02_control_flow/05_Conditional%20expression
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
📌 if-else 공식 문서 2
https://kotlinlang.org/docs/basic-syntax.html#conditional-expressions
Basic syntax | Kotlin
kotlinlang.org
2️⃣ for
☕️ Java
public class Main {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
System.out.println("Count: " + i);
}
}
}
🔷 Kotlin
fun main() {
for (i in 0 until 5) { // 0부터 4까지 반복
println("Count: $i")
}
}
- 코틀린은 for-in 문법을 제공하며, until 키워드를 사용하여 범위를 지정할 수 있습니다.
📌 for 공식 문서 1
https://play.kotlinlang.org/byExample/02_control_flow/02_Loops
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
📌 for 공식 문서 2
https://kotlinlang.org/docs/basic-syntax.html#for-loop
Basic syntax | Kotlin
kotlinlang.org
3️⃣ when
☕️ Java
Java 14 이후의 switch yield
public class SwitchYieldExample {
public static void main(String[] args) {
int day = 3;
String result = switch (day) {
case 1 -> "월요일";
case 2 -> "화요일";
case 3 -> {
System.out.println("오늘은 수요일입니다.");
yield "수요일"; // ✅ 값을 반환하는 부분
}
default -> "알 수 없음";
};
System.out.println(result); // 출력: 수요일
}
}
- switch가 표현식(Expression)으로 사용 가능 → 결과를 String으로 바로 반환
- case에서 -> 사용 (간결한 구문)
- 여러 줄({} 블록)을 사용하는 경우, 값을 반환하려면 yield를 사용해야 한다.
- break 필요 없음
🔷 Kotlin
fun main() {
val day = 3
val dayName = when (day) {
1 -> "월요일"
2 -> "화요일"
3 -> {
println("수요일 입니다.")
"수요일"
}
else -> "알 수 없음"
}
println("Day: $dayName")
}
- when 문은 표현식(Expression)으로 사용할 수 있어 값을 바로 할당 가능 (val dayName = when (...))
- break 필요 없음 → 매칭된 블록 실행 후 자동 종료
- else가 default 역할을 함 → else 입력 필수
- when의 결과값(ex. 월요일, 화요일..)의 타입은 통일시켜주는 것이 좋다.
📌 when 공식 문서 1
https://play.kotlinlang.org/byExample/02_control_flow/01_When
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
📌 when 공식 문서 2
https://kotlinlang.org/docs/basic-syntax.html#when-expression
Basic syntax | Kotlin
kotlinlang.org
4️⃣ while
☕️ Java
🔷 Kotlin
📌 while 공식 문서 1
https://play.kotlinlang.org/byExample/02_control_flow/02_Loops
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
📌 while 공식 문서 2
https://kotlinlang.org/docs/basic-syntax.html#while-loop
Basic syntax | Kotlin
kotlinlang.org
5️⃣ Exeptions : try-catch blocks
☕️ Java
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
public class Main {
public static void main(String[] args) {
try {
copy("a.txt", "a_copy.txt");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
public static void copy(String source, String target) throws IOException {
Files.copy(new File(source).toPath(), new File(target).toPath(), StandardCopyOption.REPLACE_EXISTING);
}
}
- checked exception의 경우 throws를 선언해준다.
🔷 Kotlin
import java.io.File
import java.nio.file.Files
import java.nio.file.StandardCopyOption
fun main() {
copy("a.txt", "a_copy.txt")
}
fun copy(source: String, target: String) {
Files.copy(File(source).toPath(), File(target).toPath(), StandardCopyOption.REPLACE_EXISTING)
}
- 모든 예외가 unchecked exception이므로, 예외 처리가 필수가 아니다.
- 보통 try-catch는 예외 처리를 위해 사용되지만, 코틀린에서는 try 자체가 값을 반환하는 표현식이 될 수 있다.⤵️
fun main() {
val result = try {
10 / 0 // 예외 발생 (0으로 나누기)
} catch (e: ArithmeticException) {
println("예외 발생: ${e.message}")
-1 // 예외 발생 시 -1 반환
}
println("결과: $result") // 예외 발생: / by zero
// 결과: -1
}
📌 try-catch 공식 문서
https://kotlinlang.org/docs/exceptions.html#handle-exceptions-using-try-catch-blocks
Exceptions | Kotlin
kotlinlang.org
출처
2024-2025 프로그래머스 백엔드 데브코스 3기 4회차 수업
'Kotlin > Grammar' 카테고리의 다른 글
[Kotlin] Null Safety (0) | 2025.03.16 |
---|---|
[Kotlin] Collections (0) | 2025.03.15 |
[Kotlin] Classes and Objects (0) | 2025.03.09 |
[Kotlin] Functions (1) | 2025.03.06 |
[Kotlin] Variables (0) | 2025.03.05 |