1. 조건문
코틀린에서 추가된 것 = in 연산자와 범위 연산자로 조건식 간략하게 만들기
1-1. in 연산자& .. 연산자(범위)
변수 이름 in 시작값..마지막값
else if ( score >= 80.0 && score <= 89.9 )
else if( score in 80.0..89.9 ) { }
범위 연산자는 a..b일 때 a<= N <= b를 뜻한다.
2. 분기문 (when문)
조건이 많은 경우를 핸들링하는 경우. 조건을 창조할 수도, 여러 조건을 중첩해서 한 번에 처리할 수 있음.
JAVA의 Switch - case와 유사하다.
수식이나 값의 결과에 따라 수행될 부분을 결정하며, 다양한 타입의 값을 비교할 수 있음.
break 문이 없어도 한 블록의 코드가 모두 수행되면 바로 when문 밖으로 나가버린다.
2-1. 인자를 사용하는 when문
1. 인자에 일치하는 값
2. 인자에 일치하는 표현식
3. 인자에 일치하는 범위(in a..b)
4. is 키워드를 사용하여 특정 자료형 검사
when(a1)
{
1 ->
2 ->
3 ->
4 ,5 ->
else ->
}
when(a2)
{
33.33 ->
55.55 ->
}
when(a3)
{
"문자열" ->
"문자열 2" ->
"문자열 3", "문자열 4" ->
else ->
}
when(a4)
{
in 1..3 ->
in 4..6 ->
!in 1..6 ->
else ->
}
when(a5)
{
is String ->
is Boolean ->
}
4. when절로 함수의 매개변수의 초기화를 할 수도 있다.
var a7 = f1(1)
var a8 = f1(2);
var a9 = f1(100);
println(a7);
println(a8);
println(a9);
fun f1(a1 : Int) = when(a1)
{
1 ->
{
100
}
2 ->
{
200
}
3 ->
{
300
}
else ->
{
400
}
}
2-2. Any형을 통해 다양한 자료형의 인자 받기
fun case(obj : Any) {
when(obj) {
is String ->
is Boolean ->
is Long ->
!is String ->
else ->
}
}
2-3. 인자가 없는 when 문
when 문에 인자가 주어지지 않으면 조건이나 표현식을 직접 만들 수 있기 때문에 특정 인자에 제한하지 않고 다양한 조건을 만들 수 있다.
var score = readLine()!!.toDouble()
var comment = "안녕하세요"
var grade: Char = 'F'
when {
score in 80..100 -> grade = 'A'
score in 70.0..79.9 -> grade = 'B'
comment is String -> "안녕하세요는 String 입니다."
comment == "안녕히가세요" ->
}
3. 반복문
3-1. for문
코틀린의 for문은 in 연산자와 함께 사용된다.
내부적으로 반복을 처리하는 인터페이스인 이터레이터(Iterator)에 의해 배열이나 특정 값의 범위, 컬렉션으로 불리는 요소 등에서 사용할 수 있다.
※ 컬렉션(Array, List, Map 등 여러 데이터를 다루는 요소)는 모두 이터레이터(Iterator)라는 반복을 위한 인터페이스를 구현한다.
1. 기본형
for (x in 1..5) {
println(x)
}
2. 하행형(in + downTo)
for( i in 5 downTo 1) print(i)
3. n단계씩 띄워서 계산 (in + step)
for(x in 1..5 step 2) print(x)
4. downTo + step
for(x in 5 downTo 1 step 2) print(x)
4. 람다에서 return 쓰기
- 나중에..
5. throw 키워드
의도적으로 예외를 발생시킴.
fun checkAmount(amout : int) {
if(amout < 1000){
throw Exception("잔고가 떨어짐")
}
fun main() {
try {
checkAmout()
}
catch (e : Exception) {
println(e.message)
}
}
6. 사용자 정의 예외
기본 Exception 클래스로부터 새롭게 사용자가 정의한 예외 클래스를 만들 수 있다.
class <사용자 예외 클래스 이름>(message : String) : Exception(message)
class HyunndyException(message : String) : Exception(message)
fun checkname(name : String) {
if(name.matches("Hyunndy")) {
throw HyunndyException("watchout!")
}
fun main() {
try{
checkname("Hyunndy")
}
catch(e : Exception) {
println(e.message)
}
}
'Deperecated > Kotlin' 카테고리의 다른 글
코틀린 - 중첩 클래스 (0) | 2020.02.05 |
---|---|
코틀린 - 제네릭 (0) | 2020.02.05 |
코틀린 - 클래스 (0) | 2020.02.05 |
코틀린 - 고차함수와 람다식(기본 3에 이어서..) (0) | 2020.02.05 |
코틀린 - 기본 (0) | 2020.02.05 |