Kotlin

내일배움캠프 12.10 TIL

공부처음하는사람 2023. 12. 22. 20:52

typealias

typealias num = String
fun main() {
    val vu: num = "hello kotlin"
    println(vu)
}
  • typealias는 자료형에 별명을 붙여서 사용이 가능하다.
    String을 num으로 별명을 붙여서 사용한 코드

if문 블럭없이 사용하기

fun main() {
    // if문

    var aa = 30
    var bb = 20

    if(aa > bb) println("조건이 '참' 입니다.")
    else println("조건이 '거짓' 입니다.")
}
  • 실행문이 한 줄일 경우에 위 코드같이 한줄로 작성이 가능하다.
    그러나 실행구문이 한 줄이더라도 중괄호를 사용해 코드를 감싸는것을 추천한다고 함. 이렇게 할 시 코드 가독성이 증가한다.
    (내가 보기엔 중괄호 없는편이 더 깔끔해보이는데 한번 물어봐야겠다.)

do while문

/* do while문
do{실행시킬 코드}
while(Boolean 표현식)
 */

fun main() {
    var a = 1
    do{
        println("먼저 실행되는 코드") //최소한 한번은 실행되는 코드
    }while (a == 0)
}
  • do{ }를 사용 후 while문을 사용하면 while문을 사용하기 전에 코드를 실행시킬 수 있다.
    (그런데 어떨 때 필요한지 아직 잘 모르겠음)

while

fun main() {
    var i = 1 // (Boolean 표현식이 참이 되는 동안에 실행되는 코드)
    while(i < 10){  // 10보다 작을경우에 이 작업을 실행하겠다.
        println(i)
        i += 1  // 2가 되니까 다시 2 < 10이 맞는지 확인 후 재실행
                // 9까지 실행 후 10이 되는 순간 false가 되므로 실행종료가 된다.
    }
}
  • 위에 설명되있는 그대로.... (when은 잘 알고있었는데 while은 왠지 낯설게 느껴진다. 과제때 사용을 안해서 그런가봄)

continue

// continue : 반복문의 일부 코드를 무시하고 건너뛸 때 사용하는 키워드

fun main() {
    var aa = 0

    while(aa < 10){
        aa += 1 //다음 수를 반복하기 위해서 1씩 더해주는 것. 0 했으니 1차례 (+=1)
        if(aa % 2 != 0) {
            continue // aa가 홀수이면 continue. (println(aa)를 실행하지 않음)
        }
        println(aa)
    }
}
  • 한 줄을 건너뛰고 다시 while문으로 돌아가 실행한다.
  • 나머지 연산자(modulus)를 이용해서 짝수, 홀수를 구할 수 있음

break

// break : 반복문을 실행다가 아예 반복문을 빠져나온다.

fun main() {
    var i = 0
    while(true) {  // 무한반복을 하게 됨.

        i += 1
        if (i > 10) break // i가 11이 되는순간 break로 빠져나옴.
        println(i)
    }
}
  • 무한반복되는 상황에서 break를 사용해 실행을 중단시킬 수 있다.

for

// for : for(변수 in 리스트) { 실행코드 }

fun main() {
    var sum = 0
    for(i in 1..10){
        sum += i
    }
    println(sum) // 출력결과 55 (sum += i를 1부터 10까지 반복하니까)
}
  • 변수 in 리스트만 기억하도록 하자..
  • 10부터 1까지 값이 작아지게 표현하려면 in 10 downTo 1로 사용하면 됨

label

// label : break문 다음에 @label 명을 적으면 됨
// break문은 가장 가까운 반복문만 하나만 빠져나온다

fun main() {
    var a = 0
    var b = 0

    outer@while(a <= 20) {
        b = 0
        while(b <= 20){
            if(a + b == 15 && a - b == 5)
                break@outer
            b += 1
        }
        a += 1
    }
    println("a: $a, b: $b")
}
  • 반복문 안에 반복문을 또 넣은 코드이다. 이 경우에 a = 10, b = 5를 찾는 코드인데, label을 사용하지 않으면 while(b <= 20)만 혼자 조건을 찾고 종료가 되는 상황이 발생한다. 그래서 @outer 라는 label을 추가해 while(b <= 20)에서 해당하는 조건을 찾으면 외부에 있는 조건문도 같이 종료가 되는 코드이다.
    (라벨, 레이블이라고 함.. 내가 보기엔 라벨인데 강사가 레이블이라고 해서 검색하니까 레이블이 맞았다.... 한국발음은 라벨이 맞다고 하는데 한국발음이란게 의미가 있나?)

숙취때문에 계획이 다 틀어졌다. 술이 웬수인듯
몸이 안좋은가 술을 그렇게 많이 먹지도 않았는데 너무 피곤하다.
뭐 여튼 그래서 이번 주말도 망했다.ㅎㅎ 다음주말엔 가족모임이 있는데 큰일이다. 이번주는 최대한 학습시간에 집중을 더 해야겠다.

강의 남은시간이 28시간 분량인데 수요일까지 다 듣는걸 목표로 해야겠다.
그리고 목요일부터 과제하는쪽으로 진행하자.

다다음주부터는 스터디에서 스프링기초를 공부하기로 했다.
스프링 교재엔 자바코드가 나오다보니 난해할 수 있는데 승한님이
코틀린과 비교해서 설명해주는 식으로 진행하기로 했다.

분량도 많고 빡빡한데, 뭐 나야 공부하는 입장이라 상관없지만 그분은
알고있는 내용을 가르쳐주는 입장이라.. 개인공부 할 시간도 부족한데
참 고마운 것 같다. 고마운만큼 더 열심히 공부해야지

'Kotlin' 카테고리의 다른 글

내일배움캠프 12.12 TIL  (2) 2023.12.22
내일배움캠프 12.11 TIL  (1) 2023.12.22
내일배움캠프 12.09 TIL  (0) 2023.12.22
내일배움캠프 12.08 TIL  (2) 2023.12.22
내일배움캠프 12.07 TIL  (1) 2023.12.22