[TIL] Kotlin 문법 실습 (변수, 로그출력, 조건문)

Yanus·2024년 3월 27일

자동생성 예제코드 분석

Kotlin 문법 공부를 하기위해
새로운 IDE IntelliJ를 사용하기로 했다.

자동생성 예제코드를 실행해보니
main() 함수 내부 코드가 수행되는 것을 확인하였다.

fun main() {
}

: main() 함수가 시작코드가 된다.

val name = "Kotlin"
val name : String = "Kotlin"

: 코틀린에서는 변수타입을 String으로 쓰지않아도 타입추론이 된다.
타입을 명시하고자 한다면 변수이름 : 변수타입으로 지정해도 된다.

var name = "Kotlin"
name = "changeName"

: 가변변수 var와 달리 val은 변하지않는 변수이다.
val로 선언한 변수는 값을 바꾸면 에러가 나지만
var로 선언한 변수는 값의 변경이 가능하다.

println("Hello, " + name + "!")

: String 타입을 + 연산을 하면 문자열이 이어진 값이 된다.
print 함수는 콘솔화면에 주어진 값을 출력해주는 함수이다.
println 을 사용하면 개행문자를 포함하여 출력하는것을 확인할 수 있다.

for (i in 1..5) {
    println("i = $i")
}

: for 반복문은 위와 같은 포맷으로 사용한다.

로그 출력

Log.d 함수와 같은 경우 Android Studio에서는 사용이 가능하지만 (import android.util.Log 라이브러리 사용)
IntelliJ에서는 사용이 안되었다.

따라서 IntelliJ에서는 print 함수로 System.out에 출력하는 방식으로 로그를 확인해야겠다.

var name = "홍길동"
    println("이름은" + name + "입니다.")
    println("이름은${name}입니다.")

두가지 print문은 같은 결과를 출력한다.

조건문

var 요일 = '수'

if(요일 == '월')
{
    println("영어 공부를 합니다.")
}
else if (요일 == '화')
{
    println("자전거 모임이 있습니다.")
}
else if (요일 == '수')
{
    println("친구를 만납니다.")
}
else if(요일 == '목')
{
    println("피아노를 칩니다.");
}
else if(요일 == '금')
{
    println("코딩 공부로 밤을 세웁니다.")
}
else if(요일 == '토')
{
    println("빨래를 합니다.")
}
else
{
    println("집 청소를 합니다.")
}

위와 같은 if 조건문을 수행하면 조건에 맞는 블럭이 수행되어 "친구를 만납니다." 문장이 출력이 된다.

var 요일 = '수'

when (요일)
{
    '월'->println("영어 공부를 합니다.")
    '화'->println("자전거 모임이 있습니다.")
    '수'->println("친구를 만납니다.")
    '목'->println("피아노를 칩니다.");
    '금'->println("코딩 공부로 밤을 세웁니다.")
    '토'->println("빨래를 합니다.")
    else->println("집 청소를 합니다.")
}

데이터 범위가 제한되어 있는 경우,
코드의 가독성을 위해 when 문으로 해당 조건문 변환이 가능하다.

var 요일 = '토'

when (요일) {
    '토', '일' -> println("친구를 만납니다.")
    else -> println("코딩 공부로 밤을 세웁니다.")
}

case 하나에 두개 원소가 들어갈 수도 있다.

var ageOfMichael = 20
when (ageOfMichael)
{
    in 10..19 -> { println("마이클은 10대 입니다.") }
    !in 10..19 -> { println("마이클은 10대가 아닙니다.") }
    else -> { println("에러") }
}

in을 사용하면 범위를 case로 설정할 수 있다.

var currentTime = 6
when
{
    currentTime == 5 -> { println("현재시간은 5시 입니다.") }
    currentTime > 5 -> { println("현재시간은 5시가 넘었습니다.") }
    else -> { println("현재시간은 5시 이전입니다.") }
}

각 case를 조건식으로 하는것도 가능하다.

profile
양우성

0개의 댓글