코틀린

코틀린문법(조건문,반복문)

dev.tkim42 2021. 7. 5. 03:28

조건문

fun main(){
  var a = 5
  if(a > 10){//조건문 안에 내용이 한줄이라면 중괄호 생략 가능
    println("a는 10보다 크다")
  } else {
    println("a는 10보다 작거나 같다")
  }
}

if 문은 참과 거짓을 이용해 프로그램에서 실행할 구문을 나눠주는 역할을 한다.

참과 거짓의 조건은 비교연산을 구할 수 있다.

비교연산자

  • 부등호 : < , <= , > , >=, != , ==

  • 자료형이 맞는지 체크하는 is 연산자 , !is 연산자

    a is Int 좌측 변수가 우측 자료형에 호환되는지 여부를 체크하고 형변환까지 한번에 진행시켜준다.

  • 다중 조건문 When : switch문을 좀 더 편리하게 바꾼 기능이다. 하나의 변수를 여러개의 값과 비교할 수 있다.

    fun main(){
      doWhen(1)
      doWhen(2)
      doWhen(Hello)
      doWhen(12L)
      doWhen(31)
    
    }
    
    fun doWhen (a: Any){ // Any 자료형은 어떤 자료형이든 다 호환되는 코틀린의 최상위 자료형이다
      when(a){
        1 -> println("정수 1입니다")
        "Hello" -> println("문자열 입니다")
        is Long -> println("Long 타입입니다")
        !is String -> println("String타입이 아닙니다")
        else -> println("어떤 조건도 만족하지 않습니다") // 어떤 조건값도 만족하지 않을  등호나 부등호의 사용은 불가능 
      }
    }

When에서 조건이 맞을때 동작 대신 값을 반환하는 표현식으 바꿔보기

  fun main(){
    doWhen(1)
    doWhen(2)
    doWhen("Hello")
    doWhen(12L)
    doWhen(31)

  }

  fun doWhen (a: Any){ // Any 자료형은 어떤 자료형이든 다 호환되는 코틀린의 최상위 자료형이다
    var result = when(a){
      1 -> "정수 1입니다"
      "Hello" -> "문자열 입니다"
      is Long -> "Long 타입입니다"
      !is String -> "String타입이 아닙니다"
      else -> "어떤 조건도 만족하지 않습니다" // 어떤 조건값도 만족하지 않을  등호나 부등호의 사용은 불가능 
    }
    println(result)
  }

image-20210705030832237

반복문 증감연산자

증감 연산자

  • ++ : 값을 1 증가
    • ++a : 전위 연산자. 연산자가 포함된 구문에서 이미 증감된 수를 반영하여 연산이 진행
    • a++ : 후위 연산자. 증가나 감소된 수를 해당 구문에서 사용하지 않고 다음 구문에서 사용
  • -- : 값을 1 감소

조건형 반복문 : 조건이 참인 경우 반복을 유지

  • while
  fun main(){
    var a = 0

    while(a < 5){
      println(a++)
    }
  }
  • do ..while : 조건과 관계없이 반드시 1번은 실행

    fun main(){
      var a = 0
      do
      {
        println(a++)
      }while(a < 5)
    }

범위형반복문 : 반복 범위를 정해 반복을 수행

  • for

    fun main(){
      for(i in 0..9){ // 0~9범위내 반복
        print(i) // 0123456789 출력
      }
    
      for(i in 0..9 step 3){ //i의 증가수 3
        print(i) // 0369출력
       }
    
      for(i in 9 downTo 0){ //감소시 downTo  사용
        print(i) //9876543210 출력
      }
    
      for(i in 'a' .. 'e'){//문자도 가능
        print(i)
      }
    }

흐름제어 , 논리연산자

  • return : 함수를 종료하고 값을 반환하는 역할

  • break : 반복분 내의 구문이 실행되는 중간에 즉시 반복문을 종료하고 다음 구문으로 넘어감

  • continue : 다음 반복조건으로 즉시 넘어감

코틀린의 추가기능 label

레이블이 달린 반복문을 기준으로 즉시 break시킨다.

fun main(){
  loop@for (i in 1..10){
    for(j in 1..10){
      if(i == 1 && j == 2) break@loop
      println("i :$i, j : $j") //따옴표 안에 변수를 출력할 땐 변수명 앞에 $표기 
    }
  }
}

논리연산자

  • && 둘다 참인 경우
  • || 둘 중 하나라도 참인경우
  • ! 참이면 거짓 , 거짓이면 참