문제
시작요일과 말일을 입력받아 달력을 출력하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요
프로그램의 실행순서 및 실행상태
1 public static void main( String[] args ) {
2 int lastDay = scan.nextInt();
일(0),월(1),화(2),수(3),목(4),금(5),토(6) 중에서
이번달 1일은 무슨요일인가요 : 5
이번달 말일은 언제인가요 : 4
3 System.out.println( " 일 월 화 수 목 금 토" );
일 월 화 수 목 금 토
4 for( ; dayOfWeek < firstDay; dayOfWeek++ ) {
| | main() |
| scan | (Scanner) |
| firstDay | 5 |
| lastDay | 4 |
| SUNDAY | 0 |
| SATURDAY | 6 |
| dayOfWeek | 0 | |
5 System.out.print( " " );
일 월 화 수 목 금 토
_____
4 for( ; dayOfWeek < firstDay; dayOfWeek++ ) {
5 System.out.print( " " );
일 월 화 수 목 금 토
_____
5 System.out.print( " " );
일 월 화 수 목 금 토
_____
4 for( ; dayOfWeek < firstDay; dayOfWeek++ ) {
6 for ( int day = 1; day <= lastDay; day++, dayOfWeek++ ) {
| | main() | |
| scan | (Scanner) |
| firstDay | 5 |
| lastDay | 4 |
| SUNDAY | 0 |
| SATURDAY | 6 |
| dayOfWeek | 5 |
| day | 1 |
일 월 화 수 목 금 토
1
7 if ( dayOfWeek == SATURDAY ) {
6 for ( int day = 1; day <= lastDay; day++, dayOfWeek++ ) {
| | main() |
| scan | (Scanner) |
| firstDay | 5 |
| lastDay | 4 |
| SUNDAY | 0 |
| SATURDAY | 6 |
| dayOfWeek | 6 |
| day | 2 | |
일 월 화 수 목 금 토
1 2
7 if ( dayOfWeek == SATURDAY ) {
일 월 화 수 목 금 토
1 2
8 dayOfWeek = SUNDAY - 1;
6 for ( int day = 1; day <= lastDay; day++, dayOfWeek++ ) {
일 월 화 수 목 금 토
1 2
3
7 if ( dayOfWeek == SATURDAY ) {
6 for ( int day = 1; day <= lastDay; day++, dayOfWeek++ ) {
일 월 화 수 목 금 토
1 2
3 4
7 if ( dayOfWeek == SATURDAY ) {
6 for ( int day = 1; day <= lastDay; day++, dayOfWeek++ ) {
9 }
프로그램 코드
import java.util.Scanner;
public class Calendar
{
1 public static void main( String[] args ) {
Scanner scan = new Scanner( System.in );
System.out.print( "일(0),월(1),화(2),수(3),목(4),금(5),토(6) 중에서 \n이번달 1일은 무슨요일인가요 : " );
int firstDay = scan.nextInt();
System.out.print( "이번달 말일은 언제인가요 : " );
2 int lastDay = scan.nextInt();
3 System.out.println( " 일 월 화 수 목 금 토" );
final int SUNDAY = 0, SATURDAY = 6;
int dayOfWeek = SUNDAY;
4 for( ; dayOfWeek < firstDay; dayOfWeek++ ) {
5 System.out.print( " " );
}
6 for ( int day = 1; day <= lastDay; day++, dayOfWeek++ ) {
System.out.printf( "%5d", day );
7 if ( dayOfWeek == SATURDAY ) {
System.out.println();
8 dayOfWeek = SUNDAY - 1;
}
}
scan.close();
9 }
}