티스토리 뷰

if-else 문

  • 코틀린의 if-else문은 자바와 달리 값을 반환할 수 있다.

     // 예시
    
     val age : Int = 30
     val ageRange : String = if (age >= 10 && age < 20) {
         "10대"
     } else if (age >= 30 && age < 30) {
         "20대"
     } else {
         "기타"
     }
  • 또한 코틀린에서는 삼항연산자를 지원하지 않아 if-else문으로 자바의 삼항연산자를 대체하여 사용할 수 있습니다.

     // 예시
    
     ## 자바
     int number = 30;
     String str = number % 2 == 0 ? "Even" : "Odd";
    
     ## 코틀린
     val number = 30
     val str: String = if (number % 2 == 0) "Even" else "Odd"

when 문

  • 코틀린의 when 문은 자바의 switch 문을 대체한다.

  • 자바 : break를 통해 경우를 구분

  • 코틀린 : 중괄호를 사용해 구분, 한 줄로 처리가 가능할 경우 중괄호 생략 가능

     // 예시
    
     ## 자바
     switch (v.getId()) {
         case R.id.button1:
             Log.d(tag, "button1 Click")
             break;
    
         case R.id.button2:
             Log.d(tag, "button2 Click")
             break;
    
         default:
             Log.e(tag, "Cannot Button Click")
     }
    
     ## 코틀린
     when (v.id) {
         R.id.button1 -> Log.d(tag, "button1 Click")
         R.id.button2 -> Log.d(tag, "button2 Click")
         else -> Log.e(tag, "Cannot Button Click")
     }
  • when 문도 if-else 문과 마찬가지로 값을 반환할 수 있다.

     // 예시
    
     var number = 30
     var str : String = when(number) {
         0 -> "Odd"
         else -> "Even"
     }
  • 각 조건을 표현식(Expression)으로 작성할 수 있다.

      // 예시
    
      when (e) {  
        is IOException,  NullPointerException-> // ...  
        is NullPointerException -> // ...  
      }

for 문

  • 코틀린은 for-each 형태만 지원

  • 반복자를 통해 인자의 타입을 생략할 수 있다

     // 예시
     val names : List<String> = // ...
    
     for (name in names) {  
         // ...  
     }
  • for 문 내에서 인덱스를 구해야 될 경우 Collection.indicies 프로퍼티를 사용하면 컬렉션의 인덱스 범위를 반환한다.

     // 예시
     val names : List<String> = // ...
    
     for (i in names.indices) {  
         // ...  
     }

범위

  • 특정 범위를 순환하거나 해당 범위내의 특정 항목이 포함되어 있는지 확인할 때 사용

  • .. 연산자를 사용하여 정의

     // 예시
    
     val range : IntRange = 0..10  
    
     // 정의한 범위 내를 순환하는 for문  
     for (i in range) {  
         // ...  
     }  
    
     // for문 내에서 바로 범위를 정의할 수 있음  
     for (i in 1..9) {  
         // ...  
     }
  • until : 가장 마지막 값을 포함하지 않는 범위를 생성한다.

     // 예시
    
     // 0~3번 인덱스까지 총 4개의 항목을 포함
     val range : IntRange = 0 until 4
  • in : 범위 내의 특정 항목이 있는지 알아본다.

     // 예시
    
     val range : IntRange = 0..4
     val isRange1 : Boolean = 5 in range // false
     val isRange2 : Boolean = 2 in range // true
  • downTo : 항목들의 순서가 반대로 정렬된 범위를 생성한다.

  • downTo 함수는 기본적으로 1씩 값을 감소시키며, step 함수를 사용하여 감소폭을 변경할 수 있다.

     // 예시
    
     // 5부터 1까지 1씩 감소
     for (i in 5 downTo 1) {  
         // ...  
     }
    
     // 5부터 1까지 2씩 감소
     for (i in 5 downTo 2 step 2) {  
         // ...  
     }
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함