switch-case每日一题

312 阅读2分钟

「这是我参与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还没遇到什么难题,所以接下来的学习中如果有难题我也会和大家分享交流一下。对于程序流程控制这一块难题也不多,顶多就是一些新概念的题目,分析好题目问题不大