인프런에서 제공하고 있는 강의를 보고 정리한 글입니다.
https://www.inflearn.com/course/java-to-kotlin/dashboard
반복문과 예외를 다루는 방법에 대해서 알아본다.
반복문을 다루는 방법
for-each 문
숫자가 들어 있는 리스트를 하나씩 출력하는 예제이다.
val numbers = listOf(1L, 2L, 3L)
for (number in numbers) {
println(number)
}
전통적인 for 문
for (i in 1..3) { // .. 이 범위를 나타내는 연산자.
println(i)
}
// 3에서 1로 내려갈 때. 1씩 빼서 출력한다.
for (i in 3 downTo 1) {
println(i)
}
// 2씩 올라간다는 뜻
for (i in 1..4 step 2) {
println(i)
}
Progreesion 과 Range
Kotlin 에서 전통적인 for문은 등차수열을 사용한다.
downTo , step 이 모두 함수이다. 중위함수라고 해서 함수를 호출하는 방법만 다를 뿐이다.
변수 함수이름 argument 이렇게 쓸 수 있도록.. 한다.
While 문
Java 와 완전히 동일하다.
예외 처리를 다루는 방법
try, catch, finally 구문
Int 로 변환하는 예제
fun parseIntOrThrow(var: String) : Int {
try {
return str.toInt()
} catch (e: NumberFormatException) {
throw IllegalArgumentException("주어진 ${str}는 숫자가 아닙니다")
}
}
실패하면 null 을 반환하는 예제
fun parseIntOrThrow2(var: String) : Int? {
// if else 문 처럼 앞에 return 을 선언할 수 있다.
return try {
str.toInt()
} catch (e: NumberFormatException) {
// null을 반환하도록
null
}
}
Checked Exception 과 UnChecked Exception
Java 에서는 IOException 체크 예외 를 해줘야하는 예외라 throws 를 적어줘야한다. 하지만, Kotlin 은 적어주지 않아도 된다.
class FilePrinter {
// 함수에 throws 를 명시하지 않아도 된다. Kotlin 은 모두 Unchecked Exception 으로 간주한다.
fun readFile() {
val currentFile = File(".")
val file = File(currentFile.absolutePath + "/a.txt")
val reader = BufferedReader(FileReader(file))
println(reader.readLine())
reader.close()
}
}
try with resources
Java 에 있는 try with resources 구문은 없다. use 를 사용한다.
try with resources : 괄호 내에서 괄호 안에서 외부 자원을 만들고, 해당 try 문이 끝나면 자동으로 외부 자원을 닫도록 해준다.
class FilePrinter {
fun readFile(path: String) {
// Java 에 있는 try with resources 구문은 없다. use 를 사용한다.
// try with resources : 괄호 내에서 괄호 안에서 외부 자원을 만들고,
// 해당 try 문이 끝나면 자동으로 외부 자원을 닫도록 해줌.
BufferedReader)FileReader(path)).use { reader ->
println(raeader.readLine())
}
}
}
'[ Kotlin ]' 카테고리의 다른 글
코틀린에서 클래스를 다루는 방법 - 9강 (0) | 2024.08.23 |
---|---|
코틀린에서 함수를 제어하는 방법 - 8강 (0) | 2024.08.23 |
코틀린에서 코드를 제어하는 방법 - 5강 (0) | 2024.08.22 |
코틀린에서 변수와 타입, 연산자를 다루는 방법 #2 (0) | 2024.08.22 |
코틀린에서 변수와 타입, 연산자를 다루는 방법 #1 (0) | 2024.08.22 |