基于月份数字在 Java 中打印一年中的季节名称

在本文中,我们将探讨在 Java 中根据月份数字获取季节名称的不同方法。当用户输入月份数字时,输出应与该月份对应的季节名称。例如,若用户输入 1 作为月份数字,对应的月份是 1 月,因此输出结果为 “冬季”。

以下是按月份划分的季节分类:

  • 冬季(Winter):12 月(December)、1 月(January)、2 月(February)
  • 春季(Spring):3 月(March)、4 月(April)、5 月(May)
  • 夏季(Summer):6 月(June)、7 月(July)、8 月(August)
  • 秋季(Autumn):9 月(September)、10 月(October)、11 月(November)

我们可以通过多种方法实现这一需求,包括使用 if-else 语句、switch 语句、数组以及 HashMap(哈希映射)。

1. 使用 if-else 语句

if-else 方法是根据月份数字获取季节名称的最简单方式之一。

实现步骤

以下是在 Java 中实现该方法的步骤:

  1. 提示用户输入一个月份数字(1-12)。
  2. 使用 if-else 语句判断该月份所属的季节。
  3. 打印对应的季节名称。
  4. 若输入的数字无效(小于 1 或大于 12),则显示错误提示信息。

实现代码

以下 Java 程序演示了如何使用 if-else 条件判断来确定季节:

import java.util.Scanner;
public class tutorialspoint {
   public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("输入月份数字(1-12): ");
      int month = sc.nextInt();
      sc.close();
      String season;
      if (month >= 3 && month <= 5) {
         season = "春季";
      } else if (month >= 6 && month <= 8) {
         season = "夏季";
      } else if (month >= 9 && month <= 11) {
         season = "秋季";
      } else if (month == 12 || month == 1 || month == 2) {
         season = "冬季";
      } else {
         season = "无效的月份数字";
      }
         System.out.println("季节: " + season);
   }
}

输出结果

2. 使用 Switch 语句

Switch 语句是另一种根据月份判断季节的方法,相比冗长的 if-else 条件链,它的可读性更强。

实现步骤

以下是在 Java 中实现该方法的步骤:

  1. 提示用户输入一个月份数字(1-12)。
  2. 使用 Switch 语句的 case 分支,将月份数字与对应的季节进行匹配。将属于同一季节的月份对应的 case 分支进行分组。
  3. 打印正确的季节名称。
  4. 若输入的数字与任何 case 分支都不匹配,则显示错误提示信息。

实现代码

以下 Java 程序演示了如何使用 switch 语句来确定季节:

import java.util.Scanner;
public class tutorialspoint {
   public static void main(String[]args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("输入月份数字(1-12): ");
      int month = sc.nextInt();
      sc.close();
      String season;
      switch (month) {
         case 12: case 1: case 2:
            season = "冬季";
            break;
         case 3: case 4: case 5:
            season = "春季";
            break;
         case 6: case 7: case 8:
            season = "夏季";
            break;
         case 9: case 10: case 11:
            season = "秋季";
            break;
         default:
            season = "无效的月份数字";
      }
      System.out.println("季节: " + season);
   }
}

输出结果

3. 使用数组

本方法中,我们将利用数组来存储季节名称,数组索引与月份数字相对应。

实现步骤

以下是在 Java 中实现该方法的步骤:

  1. 创建一个数组,用于存储季节名称,其中索引 0-11 分别对应一年中的每个月份(注:通常需结合逻辑将输入的月份数字(1-12)转换为数组索引(0-11),例如月份 1 对应索引 0,月份 12 对应索引 11)。
  2. 提示用户输入月份数字。
  3. 通过月份对应的数组索引,获取该月份的季节名称。
  4. 若输入的月份数字无效(小于 1 或大于 12),则打印错误提示信息。

实现代码

以下 Java 程序演示了如何使用数组来确定季节:

import java.util.Scanner;
public class tutorialspoint {
   public static void main(String[]args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("输入月份数字(1-12): ");
      int month = sc.nextInt();
      String[] seasons = {"冬季", "冬季", "春季", "春季", "春季",
         "夏季", "夏季", "夏季", "秋季", "秋季", "秋季", "冬季"};
      if (month >= 1 && month <= 12) {
         System.out.println("季节: " + seasons[month - 1]);
      } else {
         System.out.println("无效的月份数字");
      } 
   } 
}

输出结果

4. 使用 HashMap(哈希映射)

HashMap 提供了一种简单高效的方式,可将月份数字与季节名称进行映射。它支持快速查找,尤其适用于映射关系非连续的场景。

实现步骤

以下是在 Java 中实现该方法的步骤:

  1. 创建一个 HashMap,以月份数字作为键(key),以季节名称作为值(value)
  2. 提示用户输入一个月份数字。
  3. 以输入的月份数字为键,从 HashMap 中获取对应的季节名称。
  4. 若输入的月份数字无效(即该键在 HashMap 中不存在),则显示错误提示信息。

实现代码

以下 Java 程序演示了如何使用 HashMap 来确定季节:

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class tutorialspoint {
   public static void main(String[]args) {
      Scanner sc = new Scanner(System.in);
      System.out.print("输入月份数字(1-12): ");
      int month = sc.nextInt();
      sc.close();
      Map<Integer, String> seasonMap = new HashMap<>();
      seasonMap.put(1, "冬季"); seasonMap.put(2, "冬季"); seasonMap.put(12, "冬季");
      seasonMap.put(3, "春季"); seasonMap.put(4, "春季"); seasonMap.put(5, "春季");
      seasonMap.put(6, "夏季"); seasonMap.put(7, "夏季"); seasonMap.put(8, "夏季");
      seasonMap.put(9, "秋季"); seasonMap.put(10, "秋季"); seasonMap.put(11, "秋季");
      System.out.println("季节: " + seasonMap.getOrDefault(month, "无效的月份数字"));
   }
}

输出结果

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容