キーボードから年、月、日を入力して、この日が年の日であることを確認します

キーボードから年、月、日を入力して、この日が年の日であることを確認します

タイトルの説明:
キーボードとは別に年、月、日を入力し、この日が年の日であると判断します。
注:年が飛躍年であるかどうかを判断するための基準:
1)4で割り切れますが、 100で割り切れる
または
2)100で割り切れる400400で割り切れる

問題解決のアイデア:
switch-case構造を使用しますが、うるう年かどうかに注意してください。

概要:
1。キーボードからさまざまなタイプの変数を取得する方法 Scannerクラスを使用する必要があります
特定の実装手順:
1。パッケージのインポート:java.util.Scannerのインポート;
2.スキャナーのインスタンス化:Scanner scan = new Scanner(System。 in);
3. Scannerクラスの関連するメソッドを呼び出して、指定されたタイプの変数を取得します。
コードのデモンストレーション:

import java.util.Scanner;//
Scanner scan = new Scanner(System.in);
int year = scan.nextInt();

2.分岐構造2:スイッチケース
1.フォーマット

switch(表达式){
    
    
case 常量1:
	执行语句1;
	//break;

case 常量2:
	执行语句2;
	//break;

...

default:
	执行语句n;
	//break;
}

2.説明:
①スイッチ式の値に従って、それぞれの場合の定数を順番に一致させます。一致が成功すると、対応するケース構造に入り、実行ステートメントを呼び出します。
実行ステートメントが呼び出された後、他のケース構造の実行ステートメントは、breakキーワードまたはswitch-case構造の
終わりに遭遇するまで実行され続けます。

②Breakはswitch-case構造で使用できます。つまり、キーワードが実行されると、switch-case構造からジャンプします
。③switch構造の式は、次の6つのデータ型のいずれかになります。
byte、short、char、Int、列挙型(JDK5.0の新機能)、String型(JDK7.0の新機能)

④ケースの後に宣言できるのは定数のみで、スコープは宣言できません。
⑤breakキーワードはオプションです。
⑥デフォルト:if-else構造体のelseと同等です。
デフォルトの構造はオプションであり、場所は柔軟です

この質問のJavaコード:

import java.util.Scanner;

/*
从键盘分别输入年、月、日,判断这一天是当年的第几天

	注:判断一年是否是闰年的标准:
		1)可以被4整除,但不可被100整除
	  或
		2)可以被400整除

*/
public class DayJudge {
    
    
	public static void main(String[] args) {
    
    

		Scanner scan = new Scanner(System.in);
		System.out.println("请输入year:");
		int year = scan.nextInt();
		System.out.println("请输入month:");
		int month = scan.nextInt();
		System.out.println("请输入day:");
		int day = scan.nextInt();

		int sumDays = 0; // 定义一个变量来保存总天数

		switch (month) {
    
    
		case 12:
			sumDays += 30;
		case 11:
			sumDays += 31;
		case 10:
			sumDays += 30;
		case 9:
			sumDays += 31;
		case 8:
			sumDays += 31;
		case 7:
			sumDays += 30;
		case 6:
			sumDays += 31;
		case 5:
			sumDays += 30;
		case 4:
			sumDays += 31;
		case 3:
			// sumDays += 28;
			// 判断year是否是闰年
			if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
    
    
				sumDays += 29;
			} else {
    
    
				sumDays += 28;
			}
		case 2:
			sumDays += 31;
		case 1:
			sumDays += day;
		}
		System.out.println(year + "年" + month + "月" + day + "日是当年的第" + sumDays + "天");
	}
}

おすすめ

転載: blog.csdn.net/qq_45555403/article/details/114129470