(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 이라는 예외 처리(?)가 붙는다
'국비교육 > 국비교육 복습' 카테고리의 다른 글
Day05_loop_Test06 : 7의 배수 찾기 + 5가 포함된 숫자 찾기 (for 반복문 활용) (★) (0) | 2022.08.06 |
---|---|
Day05_loop_Test05 : 1부터 100까지 홀수 / 짝수 출력 (0) | 2022.08.06 |
Day05_loop_Test03 : 반복수의 활용 (0) | 2022.08.05 |
Day05_loop_Test02 : 5개의 숫자를 입력으로 받기 (for문과 Scanner 활용) (★) (0) | 2022.08.05 |
Day04_condition2_Test04 : 윤년 계산 (★) (0) | 2022.07.31 |