국비교육/국비교육 복습
Day05_loop_Test04 : 타이머 만들기 (★) + Thread.sleep 메소드
Luver Duck
2022. 8. 5. 19:50
(Q) 타이머 만들기
사용자가 분과 초를 설정하면 해당하는 시간만큼의 메세지 출력 후 종료되는 프로그램 구현
- 분 입력 : 2
- 초 입력 : 10
ex)
2분 10초 남았습니다
2분 9초 남았습니다
...
0분 2초 남았습니다
0분 1초 남았습니다
...
package day05;
import java.util.Scanner;
public class Day05_loop_Test04 {
public static void main(String[] args) throws InterruptedException {
Scanner sc = new Scanner(System.in);
//준비 - 분, 초 세팅
int min = sc.nextInt();
int sec = sc.nextInt();
int totalSec = min * 60 + sec;
//출력
for(int i = totalSec ; i >= 0 ; i --) {
System.out.println((i / 60) + "분 " + (i % 60) + "초 남았습니다");
Thread.sleep(1000L);
}
sc.close();
}
}
- 반복수 i를 totalSec부터 0 이상이 될 때까지 1씩 감소(i--) 시키면서 출력식에 대입
- (i / 60) : 분 - (totalSec를 60으로 나눈 몫)
- (i % 60) : 초 (totalSec를 60으로 나눈 나머지)
** Thread.sleep 메소드
- 저장된 시간동안 현재 스레드를 중단시킨다
- () 안의 값은 msec(10^-3 [sec]) 단위이다
ex) 1000L = 1[sec]
- main 메소드 옆에 throws InterruptedException 이라는 예외 처리(?)가 붙는다