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


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



相关文章
|
4天前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
14天前
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
36 5
|
13天前
|
Java C语言
课时8:Java程序基本概念(标识符与关键字)
课时8介绍Java程序中的标识符与关键字。标识符由字母、数字、下划线和美元符号组成,不能以数字开头且不能使用Java保留字。建议使用有意义的命名,如student_name、age。关键字是特殊标记,如蓝色字体所示。未使用的关键字有goto、const;特殊单词null、true、false不算关键字。JDK1.4后新增assert,JDK1.5后新增enum。
|
13天前
|
Java 编译器
课时7:Java程序基本概念(注释)
课时7介绍了Java程序中的注释。编程语言有其语法和语义,注释有助于理解代码需求,防止断档。Java支持三类注释:单行(//)、多行(/* */)和文档注释(/** */)。注释不会被编译器编译。范例中展示了如何在代码中使用注释,并强调了注释对项目文档管理的重要性。
|
10天前
|
存储 Java 数据库连接
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
【YashanDB知识库】Java程序调用存储过程,在提取clob时报YAS-00004
|
10天前
|
搜索推荐 Java Android开发
课时146:使用JDT开发Java程序
在 Eclipse 之中提供有 JDT环境可以实现java 程序的开发,下面就通过一些功能进行演示。 项目开发流程
|
13天前
|
Java 开发工具
课时5:第一个Java程序
课时5介绍了编写第一个Java程序的步骤,包括创建Hello.java文件、编写“Hello World”代码、编译和运行程序。主要内容有:1) 新建并编辑Hello.java;2) 编译Java源文件生成.class文件;3) 通过命令行解释执行Java程序;4) 解释主方法的作用及信息输出操作。本课强调了类定义、文件命名规则和基本程序结构的重要性,并建议初学者使用记事本编写代码以熟悉基础语法。
|
2月前
|
传感器 安全 算法
消防救援支队消防员单兵装备智能养护舱电机驱动java版程序(二)
本文探讨消防救援中智能养护舱电机驱动的Java程序设计,作为系列文章第二部分。通过自动化和智能化手段,智能养护舱提升了装备维护效率与准确性。文章详细介绍了电机驱动模块的设计与实现,包括硬件选型、PID控制策略、安全保护机制及Java程序架构,确保电机精确控制、稳定性和安全性。未来将优化功能并引入智能算法和物联网技术,进一步提升装备维护智能化水平。
|
Java
Java中需要注意的一些案例
Java中需要注意的一些案例
131 0