A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lvwangxiao 中级黑马   /  2016-3-14 11:38  /  544 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

题目:键盘输入年份和月份,然后控制台返回该月份的天数(闰年2月29天).
(闰年:年份是整百数时,必须是400的倍数才是闰年)
  1. import java.util.Scanner;

  2. public class Mymonth {
  3.         public static void main(String[] args){
  4.                
  5.                 Scanner sc = new Scanner(System.in);
  6.                 System.out.println("请输入年份:");
  7.                 int year = sc.nextInt();
  8.                 System.out.println("请输入月份:");
  9.                 int month = sc.nextInt();
  10.                
  11.                 if(year%400 == 0){
  12.                         System.out.println("您输入的年份是闰年!");
  13.                         switch(month){
  14.                         case 1:
  15.                         case 3:
  16.                         case 5:
  17.                         case 7:
  18.                         case 8:
  19.                         case 10:
  20.                         case 12:
  21.                                 System.out.println("您输入的月份有31天!");
  22.                                 break;
  23.                         case 4:
  24.                         case 6:
  25.                         case 9:
  26.                         case 11:
  27.                                 System.out.println("您输入的月份有30天");
  28.                                 break;
  29.                         case 2:
  30.                                 System.out.println("您输入的月份有29天!");
  31.                                 break;
  32.                         default:
  33.                                 System.out.println("您输入的月份有误!");
  34.                                 break;
  35.                         }
  36.                        
  37.                 }else{
  38.                         System.out.println("您输入的年份不是闰年!");
  39.                         switch(month){
  40.                         case 1:
  41.                         case 3:
  42.                         case 5:
  43.                         case 7:
  44.                         case 8:
  45.                         case 10:
  46.                         case 12:
  47.                                 System.out.println("您输入的月份有31天!");
  48.                                 break;
  49.                         case 4:
  50.                         case 6:
  51.                         case 9:
  52.                         case 11:
  53.                                 System.out.println("您输入的月份有30天");
  54.                                 break;
  55.                         case 2:
  56.                                 System.out.println("您输入的月份有28天!");
  57.                                 break;
  58.                         default:
  59.                                 System.out.println("您输入的月份有误!");
  60.                                 break;
  61.                         }
  62.                 }
  63.                
  64.         }
  65. }
复制代码


感觉自己写的太麻烦了,有没有简单一点的方法?

9 个回复

倒序浏览
用switch太麻烦了!!!换个
回复 使用道具 举报
吧switch换成if elseif 用区间判断
回复 使用道具 举报
Java提供了canlendar日历类,可以通过这个类来进行所有判断,你可以了解下,不谢!
回复 使用道具 举报
来学学习了!!
回复 使用道具 举报
认真分析不难发现,1,3,5,7,8,10,12月是否闰年都不影响判断,完全可以提出来单独判断,还有月份错误判断,4,6,9,11月也可以单独判断,就闰年2月判断一下就行了
回复 使用道具 举报
用calendar类可以实现
回复 使用道具 举报
兵蜂 中级黑马 2016-3-14 20:43:01
8#
学习了,逐步简化代码!最直观的,对于我这种小白可以,谢谢了!
回复 使用道具 举报
看着是挺麻烦的 来看有没有简单方法
回复 使用道具 举报
干嘛要用switch?三种循环方式,你换其他的事实,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马