「这是我参与2022首次更文挑战的第25天,活动详情查看:2022首次更文挑战」
由于新学期开始,洋哥有一门课需要用到Java,所以我会重学一遍Java。从这一篇开始我们就开始介绍Java的题解了,至于算法的题解之后也会更新的,今天就是Java题解的第一篇。
题目要求
编写一个程序,为一个给定的年份找出其对应的中国生肖。中国的生肖基于12年一个周期,每年用一个动物代表:rat、ox、tiger、rabbit、dragon、snake、horse、sheep、monkey、 rooster、dog、pig。
提示:2019年:猪 2019 % 12 == 3
建议用时:10-15分钟
难度:中等
知识点考察
这道题主要考察的是Java的程序流程控制的内容。这道题可以用if-else语句,也可以用switch-case语句来做,但第一个过程太麻烦。
问题分析
第一,我们要知道一个确定的年份和生肖,找到年份与生肖的对应关系,这个题目给了,2019年是猪年。
第二,我们知道生肖一共有12个,也就是说间隔12年的两年生肖是一样的,那么与(2019%12)值相等的都是猪年,而下一年是鼠年,即与(2019%12)+1值相等的都是鼠年,依此类推即可。
第三,构建switch-case语句。用year%12作为switch()里的表达式,计算出case3是pig,依此类推,记得要加上break。
相关知识点复习
switch(表达式){
case 常量1:
语句1;
// break;
… …
case 常量N:
语句N;
// break;
default:
语句;
// break;
根据switch表达式中的值,依次匹配各个case中的常量,一旦匹配成功,则进入相应case结构中,调用其执行语句,当调用完执行语句后,则仍然继续向下执行其他case结构中的执行语句,直到遇到break关键字或此switch-case末尾结束为止
代码实现
package com.control.contact;
import java.util.Scanner;
public class switchexer4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("请输入year:");
Scanner scan = new Scanner(System.in);
int year = scan.nextInt();
switch(year % 12){
case 0:
System.out.println("monkey");
break;
case 1:
System.out.println("rooster");
break;
case 2:
System.out.println("dog");
break;
case 3:
System.out.println("pig");
break;
case 4:
System.out.println("rat");
break;
case 5:
System.out.println("ox");
break;
case 6:
System.out.println("tiger");
break;
case 7:
System.out.println("rabbit");
break;
case 8:
System.out.println("dragon");
break;
case 9:
System.out.println("snake");
break;
case 10:
System.out.println("horse");
break;
case 11:
System.out.println("sheep");
}
}
}
总结和建议
就这道题而言难度并不大,就单独考察了一个switch-case,因为我也刚开始学Java还没遇到什么难题,所以接下来的学习中如果有难题我也会和大家分享交流一下。对于程序流程控制这一块难题也不多,顶多就是一些新概念的题目,分析好题目问题不大