キーボードから年、月、日を入力して、この日が年の日であることを確認します
タイトルの説明:
キーボードとは別に年、月、日を入力し、この日が年の日であると判断します。
注:年が飛躍年であるかどうかを判断するための基準:
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 + "天");
}
}