왕초보일지

231212 TIL 스레드 참조

다시은 2023. 12. 12. 20:35

 

 

arraylist.clear() 요소 전체 삭제

arraylist.removeAt() 특정 인덱스  삭제

arraylist.add()  요소 추가

 

 

 

 

키오스크 넣을 기능

 

 

 LEVEL4 ->4주차 강의

  • 문자입력 시 예외처리
  • 결제 -> 장바구니의 주문 항목과 연결 displaycart() -> order() -> pay()
  • 현재 잔액과 가격 비교

  • 주문할 때 장바구니가 비어 있으면 : 주문할 상품이 없습니다.

  • 잔액 클래스 추가?

 

LEVEL5 ->5주차 강의

  • 특정 작업이 종료된 후 3초 뒤에 다른 작업을 수행할 수 있도록 
fun main(args: Array<String>) {
    println("메인쓰레드 시작")
    var job = GlobalScope.launch {
        delay(3000)
        println("여기는 코루틴...")
    }
    runBlocking {
        job.join()
    }
    println("메인쓰레드 종료")
}

장바구니 목록을 초기화하는 부분에 3초의 딜레이를 넣어봤다.

  • 결제시 현재 시간을 비교하여 특정 시간대에는 결제할 수 없다는 알림창을 띄워줘요
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"))
//현재 시간
    var nowTime = LocalDateTime.now().toLocalTime()

    //비교할 시간 범위 오후 11시 30분 ~ 오후 11시 59분
    var startTime = LocalTime.of(23, 30) //LocalTime : java.time 패키지 클래스
    var endTime = LocalTime.of(23, 59)

    //isAfter 와 isBefore 을 이용해서 현재시간과 제한시간 비교
    if (nowTime.isAfter(startTime) && nowTime.isBefore(endTime)) {
        println("오후 11시 30분 부터 오후 11시 30분까지 은행 점검시간으로 결제가 제한됩니다.")
        showMenu()
    }
  • 프로그램을 종료할때까지 5초마다 현재 주문 대기수를 실시간으로 출력해줘요  코루틴

main 제일 처음에 스레드를 집어 넣어서 주문 내내 주문 대기 수가 뜨도록 만들었다.

 

 

  • 결제 완료 시각 띄워주기
println("결제가 완료되었습니다:-)")
println(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm"))) //현재날짜시간 포맷
println("현재 잔액은 ${paycash - total}원 입니다.")

 

월의 경우 대문자로 입력하는 것 잊지말기

 


 

 

 

예외처리

 

숫자를 요구하는 곳에 문자를 입력받아 발생한 에러

 

 

 

처음 try/ catch 를 사용할 때 변수 choice 를 while 안에서 선언했더니 그 뒤 when 구문에서 choice 에 접근할 수 없었다.

그러나 while  밖에서 선언한 후 블록 안에서 할당했더니 when 구문에서 choice 에 접근할 수 있게 되었다.

블록 내부에서 선언된 변수를 해당 블록 내에서만 유효하다.

 

 

자료형 변환

Integer.parseInt()

 

스레드 사용

https://github.com/Kotlin/kotlinx.coroutines#android

 

GitHub - Kotlin/kotlinx.coroutines: Library support for Kotlin coroutines

Library support for Kotlin coroutines . Contribute to Kotlin/kotlinx.coroutines development by creating an account on GitHub.

github.com

dependencies {
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0-RC")
}