Java 案例练习:编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。月份为 1、3、5、7、8、10、12 时,天数为 31 天。月份为 4、6、9、11 时,天数为

简介: Java 案例练习:编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。月份为 1、3、5、7、8、10、12 时,天数为 31 天。月份为 4、6、9、11 时,天数为

文章目录


image.png


一、练习题目

编写 Java 程序,输入年份和月份,使用 switch 结构计算对应月份的天数。

月份为 1、3、5、7、8、10、12 时,天数为 31 天。

月份为 4、6、9、11 时,天数为 30 天。

月份为 2 时,若为闰年,天数为 29 天,否则,天数为 28 天。

要求实现程序如下图所示:

image.png

二、使用 switch 语句实现代码

我们使用 switch 语句实现代码如下:

package rjxy2019_java_demo;
import java.util.Scanner;
public class SwitchWithDays {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Please enter a year:");
    int year = input.nextInt();
    System.out.println("Please enter a month:");
    int month = input.nextInt();
    int day = 0;
    boolean isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
    switch(month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:day = 31;break;
    case 4:
    case 6:
    case 9:
    case 11:day = 30;break;
    case 2:if(isLeapYear == true) day = 29;
    else day = 28;break;
    default:System.out.println("Error:invalid input");
    System.exit(1);
    }
    System.out.println(year + "年" + month + "月一共" + day + "天");
  }
}

验证,当输入为 2009 年 2 月时,如下图所示:

image.png

说明System.exit(status)是在System类中定义的,调用这个方法可以终止程序。

参数status为 0 表示程序正常结束。一个非 0 的状态代码表示非正常结束。

例如,我们输入月份为 13 时,程序终止并输出报错信息,如下图所示:

image.png

三、将代码改写回 if else 的选择结构

我们将代码改写回 if else 的选择结构,代码如下:

package rjxy2019_java_demo;
import java.util.Scanner;
public class IfElseWithDays {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Please enter a year:");
    int year = input.nextInt();
    System.out.println("Please enter a month:");
    int month = input.nextInt();
    int day = 0;
    boolean isLeapYear = ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0));
    if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month ==12) day = 31;
    else{
      if(month == 4 || month == 6 || month == 9 || month == 11) day = 30;
      else {
        if(month == 2) {
          if(isLeapYear == true) day = 29;
          else day = 28;
        }
        else {
          System.out.println("Error:invalid input");
          System.exit(1);
        }
      }
    }
    System.out.println(year + "年" + month + "月一共" + day + "天");
  }
}

输出结果无误,如下图所示:

image.png


image.png


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!



相关文章
|
6天前
|
存储 Java
java中的常见运算符的计算方式
本文介绍了计算机中二进制数的原码、反码和补码的概念及其转换方式。原码是符号位加真值的绝对值;反码中正数不变,负数其余位取反;补码在反码基础上加1。文章还详细解释了Java中的常见运算符(如按位与、或、异或、移位等)如何基于二进制进行计算,并探讨了使用补码的原因,包括统一符号位处理和扩展表示范围。通过具体代码示例帮助理解这些概念。
java中的常见运算符的计算方式
|
6天前
|
存储 JavaScript Java
如何在Java中计算绝对值
绝对值表示一个数离0的距离,总是非负的。在Java中,可以通过`Math.abs()`函数或`if-else`条件语句来计算绝对值。使用`Math.abs()`可直接将负数转为正数,而`if-else`则根据条件判断是否取反。本文介绍了这两种方法的具体实现步骤和代码示例,并展示了如何通过用户输入获取数值并输出其绝对值。此外,还提供了完整的代码和编译执行的方法。
如何在Java中计算绝对值
|
2月前
|
JSON Java 程序员
Java|如何用一个统一结构接收成员名称不固定的数据
本文介绍了一种 Java 中如何用一个统一结构接收成员名称不固定的数据的方法。
29 3
|
2月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
85 1
|
2月前
|
Java
java switch case多个条件
通过本文的介绍,我们详细探讨了Java中 `switch case`语句的多种用法和优化方法。从基本语法到合并多个条件,再到使用枚举、常量和函数优化,`switch case`语句在Java编程中提供了一种灵活且高效的控制流方式。掌握这些技巧,能够编写出更加简洁、可读性强的代码,提高开发效率和代码质量。希望本文能为您在实际开发中提供有价值的参考和指导。
116 2
|
2月前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
74 2
|
2月前
|
分布式计算 Java MaxCompute
ODPS MR节点跑graph连通分量计算代码报错java heap space如何解决
任务启动命令:jar -resources odps-graph-connect-family-2.0-SNAPSHOT.jar -classpath ./odps-graph-connect-family-2.0-SNAPSHOT.jar ConnectFamily 若是设置参数该如何设置
|
2月前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
47 0
|
3月前
|
存储 算法 Java
🚀Java零基础-顺序结构详解 🚀
【10月更文挑战第11天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
39 6
|
3月前
|
Java 测试技术 编译器
🎯Java零基础-Switch条件语句详解 🎯
【10月更文挑战第8天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
43 6