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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

import java.util.Scanner;
class Test6_Switch {
public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  //先输入月份,以判断日
  System.out.println("请输入月份:");
  int m = sc.nextInt();
  //查对应日期的的星期
  System.out.println("请输入月内某天查看那天是星期几:");
  int d = sc.nextInt();
  //再输入月份1号的星期
  System.out.println("请输入这个月1号是星期几(对应的数字,如果是星期日,输入7):");
  int x = sc.nextInt();
  
  //定义日期不对的返回标记
  int a = -1;
  //判断是否是正常的12个月
  if (m >= 1 && m <= 12) {     
   switch (m) {  
    case 1://31天的月份
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      a = (d >= 1 && d <= 31) ? (x + d - 1) % 7 : -1;
    break;
    case 4://30天的月份
    case 6:
    case 9:
    case 11:   
      a = (d >= 1 && d <= 30) ? (x + d - 1) % 7 : -1;
    break;
    case 2://不考虑闰年   
     a = (d >= 1 && d <= 28) ? (x + d - 1) % 7 : -1;
    break;
    }
  }else {
   System.out.println("地球上没有" + m + "月,你是火星来的吗?");
   }
  //System.out.println("a = " + a);
  //根据返回的标记查询星期几
  if (a != -1) {
    switch (a) {   
     case 1:
      System.out.println(m + "月" + d +"号是星期一");
     break;
     case 2:
      System.out.println(m + "月" + d +"号是星期二");
     break;
     case 3:
      System.out.println(m + "月" + d +"号是星期三");
     break;
     case 4:
      System.out.println(m + "月" + d +"号是星期四");
     break;
     case 5:
      System.out.println(m + "月" + d +"号是星期五");
     break;
     case 6:
      System.out.println(m + "月" + d +"号是星期六");
     break;
     case 7:
      System.out.println(m + "月" + d +"号是星期日");
     break;         
     }
   }else {
    System.out.println("输入的日期不存在,你难道是火星来的?");   
    }
  
}
}

9 个回复

正序浏览
z736886202 发表于 2016-5-14 00:27
我也做了这道题啊 ,感觉你代码太多了, 我的就没多少就写完了 运行也没错

嗯嗯,思路不一样吧
回复 使用道具 举报
New灬狼 发表于 2016-5-13 21:38
不是,Android基础班

我也做了这道题啊 ,感觉你代码太多了, 我的就没多少就写完了 运行也没错
回复 使用道具 举报
z736886202 发表于 2016-5-11 22:36
.....ios班的题吧  我也做了 没那么难啊

不是,Android基础班
回复 使用道具 举报
这个代码其实还可以优化,就是把31天全走default,又是一个发现.
回复 使用道具 举报
glacial 发表于 2016-5-12 21:28
其实你可以在QQ里直接沟通,我是于维家

跑这里不是可以刷分嘛
回复 使用道具 举报
New灬狼 发表于 2016-5-12 19:13
嗯嗯,是的,有一个直接输入字符串的,但是我们今天没有讲,所以没有用哪个

其实你可以在QQ里直接沟通,我是于维家
回复 使用道具 举报
glacial 发表于 2016-5-12 09:48
给你个建议,将有关星期的数据键盘输入成String或char类型,判断时都转成char类型进行选择判断。这样输入的 ...

嗯嗯,是的,有一个直接输入字符串的,但是我们今天没有讲,所以没有用哪个
回复 使用道具 举报
给你个建议,将有关星期的数据键盘输入成String或char类型,判断时都转成char类型进行选择判断。这样输入的人就可以输入中文的一至日了,更加合理。String的Scanner输入函数是next(),可以用toCharArray()转成char,在利用ASCII码进行选择。Scanner的char输入,我记不清了,可以去API里查。
回复 使用道具 举报
.....ios班的题吧  我也做了 没那么难啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马