기록하는 개발자

Kotlin(코틀린)(Intelli J) #5 Basic-2 (연산자 종류, if 문, 라벨 사용법) 본문

Kotlin

Kotlin(코틀린)(Intelli J) #5 Basic-2 (연산자 종류, if 문, 라벨 사용법)

밍맹030 2020. 2. 6. 17:15
728x90

Control flow

1. 연산자

• 단항 연산자 (unary operator)
    • +a: a.unaryPlus ( )
    • -a: a.unaryMinus ( )
    • !a: a.not ( )

 

• 증감 연산자
    • a++: a.inc ( )
    • a--: a.dec ( )

 

• 산술    • a + b : a.plus(b)    • a - b : a.minus(b)    • a * b : a.times(b)    • a / b : a.div(b)    • a % b : a.rem(b) or a.mod(b)    • a..b : a.rangeTo(b) (a <= i <= b)

 

논리-참 또는 거짓을 반환하는 연산자    • a&&b : 논리곱(and)    • a || b : 논리합(or)    • !a : 부정

 

비교    •a===b : a와 b는 같은 객체인가? (주소 비교)    •a==b : a와 b는 같은 값인가? (값 비교)    •a = = b : a?.equals(b) ? : (b===null)    •a ! = b :  !(a?.equlas(b)? : (b===null))    •a > b :  a.compareTo(b) > 0    •a < b : a.compareTo(b) < 0    •a >=b : a.compareTo(b) >=0    •a <=b :  a.compareTo(b) <=0

비트

in

포함 연산자
    • a in b  a가 객체 b에 포함되어 있는지의 여부를 true/false로 반환
    • !in 연산자도 가능

 

is

    • instance 연산자
    •변수가 가리키는 객체의 타입에 대해서 true/false 로 반환

 

as

    • downcasting 연산자
    •슈퍼 클래스 타입을 서브 클래스 타입으로 받음

 

2. If-expression

-조건에 따라 수행 여부를 결정하는 구문

• if 문이 식으로 사용되는 경우 값을 반환함

           val max = if (a > b) a else b


• if 문이 길어지면 { } 처리 가능

           val max = if (a > b) a else bval max = if (a > b) {
           println (“Choose a”)
           a
           } else {
           println (“Choose b”)
           b
           }

• 3항 연산자를 대체

        int max = (a > b) ? a: b
     val max = if (a > b) a else b

 

3. When-expression

• when은 switch-case 문과 비슷하다. 

    • 다양한 타입의 값과 비교 가능

    • 위에서부터 비교하여 만족하는 조건을 만나면 코드를 실행하고 빠져 나옴(break 필요 없음)
    • 마지막은 else로 처리함 (default와 같은 기능)

    

• 다양한 조건을 사용할 수 있음
    • 여러 경우를 동일한 방법으로 처리할 경우 브랜치 조건을 콤마로 묶을 수 있다.

    • 브랜치 조건으로 (상수뿐만 아니라) 임의의 식을 사용할 수 있다.

    • in을 이용해서 범위를 사용할 수 있음

    • is 연산자로 type을 비교할 수 있음

• when도 if와 같이 수식으로 사용할 수 있음
    • 값을 반환함

result=scan.next()

val result : Char = when( result / 10){

   9, 10 -> 'A'

   8 -> 'B'

   7 -> 'C' 

   6 -> 'D'

   else -> 'F'

}

728x90

Returns and jumps

코틀린에는 세 가지 구조의 점프 식이 있다.
-return : 기본으로 가장 가깝게 둘러싼 함수나 익명 함수 에서 리턴한다.
-break : 가장 가깝게 둘러싼 루프를 끝낸다.
-continue : 가장 가깝게 둘러싼 루프의 다음 단계를 진행한다.

 

break와 continue label

코틀린의 모든 식에 label 을 붙일 수 있다. 

라벨은 @ 부호 뒤에 식별자가 붙는 형식으로, 예를 들어 abc@ , fooBar@ 는 유효한 라벨이다. 

식 앞에 라벨을 위치시켜 라벨을 붙인다.

이제 라벨을 사용해서 break 나 a continue 를 한정할 수 있다:

라벨로 한정한 break 는 해당 라벨이 붙은 루프 이후로 실행 지점을 점프한다.

continue 는 루프의 다음 반복을 진행한다.

 

ex)

 위 코드를 실행 해보면, 아래와 같이 return의 실행으로 반복문이 종료되어 blue만 출력된다.

여기서 forEach 다음과 return다음에 loop를 사용하면 continue 와 같은 효과를 나타낸다.

728x90