입력에 대해 찾아보니 입력을 받기 위해 표준 라이브러리에서 제공하는 readLine()과 readln()이 있다.
사용했을때 차이점이 나타난다.
간단하게 보면 readLine()은 null값을 허용하는 String?타입으로 반환하지만 readln()은 non-null 타입이다.
fun main(){
val name: String = readln()
if (name.isEmpty()){
println("잘못된 입력")
}else {
println(name)
}
}
if문 사용
숫자를 입력할 때까지 무한반복해서 입력받기
fun main() {
while(true){
try{
var num1 = readln().toInt()
println(num1)
break
}catch (e:NumberFormatException){
println("숫자가 아님.")
}
}
}
while문 안에 try catch문으로 숫자를 받을 때까지 반복하고 숫자를 받으면 받은 숫자를 출력하고 종료.
물론 null값도 무한 반복
더해서
1-3범위의 숫자만 받고 싶을 때는 ?
fun main() {
while(true){
try{
var num1 = readln().toInt()
if(num1 in 0..3){
println(num1)
break
}else{
println("1-3까지 숫자를 입력해주세요")
}
}catch (e:NumberFormatException){
println("숫자가 아님.")
}
}
}
try문 안에 if조건문을 넣어주면 된다.
메서드에서 예외처리
fun checkNumber(): Int {
var userInput: String?
var number: Int?
while(true) {
print("숫자만 입력")
userInput = readLine()
number = userInput?.toIntOrNull()
if(number != null) {
return number
} else {
println("숫자!를 입력해주세요.")
}
}
}
사용
var inputNumber = CheckNumber()
2-3개는 if문을 쓰겠는데 범위가 넓다면 ?
if (number !in 0..6) {
println("0~6까지의 숫자만 입력")
} else if (number != null) {
return number
} else {
println("올바른 숫자를 입력해주세요")
}
조건문 추가로 예외처리
'Kotlin' 카테고리의 다른 글
MVVM 강의 실습 (0) | 2024.04.16 |
---|