Digite o ano, mês e dia no teclado para determinar que este dia é o dia do ano
Descrição do título:
insira o ano, mês e dia separadamente do teclado e julgue que este dia é o dia do ano.
Observação: o padrão para julgar se um ano é um ano bissexto:
1) Divisível por 4, mas não divisível por 100
ou
2) Pode ser divisível por 100 400 divisível
Idéias para a resolução de problemas:
Use a estrutura da caixa de comutação, mas preste atenção se é um ano bissexto.
Resumo:
1. Como obter diferentes tipos de variáveis do teclado: Necessidade de usar a classe Scanner
. Etapas de implementação específicas:
1. Importar pacote: import java.util.Scanner;
2. Instanciar Scanner: Scanner scan = new Scanner (Sistema. in);
3. Chame o método relevante da classe Scanner para obter a variável do tipo especificado
Demonstração de código:
import java.util.Scanner;//
Scanner scan = new Scanner(System.in);
int year = scan.nextInt();
2. Estrutura de ramificação 2: caixa de comutação
1. Formato
switch(表达式){
case 常量1:
执行语句1;
//break;
case 常量2:
执行语句2;
//break;
...
default:
执行语句n;
//break;
}
2. Descrição:
① De acordo com o valor na expressão switch, combine as constantes em cada caso. Assim que a correspondência for bem-sucedida, ele entra na estrutura de caso correspondente e chama sua instrução de execução.
Depois que a instrução de execução é chamada, a instrução de execução em outras estruturas de caso continuará a ser executada até que a palavra-chave break ou o
final da estrutura de switch-case seja encontrada .
② Break pode ser usado na estrutura switch-case, o que significa que uma vez que a palavra-chave é executada, ela vai pular para fora da estrutura switch-case.
③ A expressão na estrutura switch só pode ser um dos seguintes seis tipos de dados:
byte, short, char, Int, tipo de enumeração (novo no JDK5.0), tipo de string (novo no JDK7.0)
④ Apenas constantes podem ser declaradas após caso, não escopo.
⑤ A palavra-chave break é opcional.
⑥ default: equivalente a else na estrutura if-else.
A estrutura padrão é opcional e o local é flexível
O código Java para esta pergunta:
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 + "天");
}
}