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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 qq250144825 于 2015-4-5 23:44 编辑

今天自习把刚学的if、while、Scanner、方法调用,结合在一起敲了段代码,献丑了,望指点。
  1. /*
  2.         一年有12个月,每个月份对应不同的季节
  3.         冬季:1,2,12
  4.         春季:3,4,5
  5.         夏季:6,7,8
  6.         秋季:9,10,11
  7.         根据输入月份的输出对应季节

  8. */
  9. import java.util.Scanner;
  10. class test
  11. {
  12.         public static void main(String[] args)
  13.         {        //封装键盘录入
  14.                 Scanner sc = new Scanner(System.in);
  15.                 //提醒输入
  16.                 System.out.print("请输入正确月份(1-12):");
  17.                 //获取数据
  18.                 int month = sc.nextInt();
  19.                 System.out.println(getMonth(month)+"\n");
  20.                 panduan(month);
  21.         }
  22.         //对应不同的月份输出季节
  23.         public static String getMonth(int month)
  24.         {
  25.                 String str ;
  26.                 switch (month)
  27.                 {
  28.                         case  1:
  29.                         case  2:
  30.                         case 12:
  31.                                 str = month+"月份为冬季";
  32.                                 break;
  33.                         case  3:
  34.                         case  4:
  35.                         case  5:
  36.                                 str = month+"月份为春季";
  37.                                 break;
  38.                         case  6:
  39.                         case  7:
  40.                         case  8:
  41.                                 str = month+"月份为夏季";
  42.                                 break;
  43.                         case  9:
  44.                         case 10:
  45.                         case 11:
  46.                                 str = month+"月份为秋季";
  47.                                 break;
  48.                         default:
  49.                                 str = "";
  50.                         break;
  51.                 }
  52.                 return str;
  53.         }
  54.         //循环输入数据查询(1到12的区间)
  55.         public static void correct(int month)
  56.         {       
  57.                 Scanner sc = new Scanner(System.in);
  58.                 String str;
  59.                 while (month>=1 && month<=12)
  60.                 {       
  61.                         System.out.print("请输入(退出请输入0):");
  62.                         month = sc.nextInt();
  63.                         str = getMonth(month);
  64.                         System.out.println(str+"\n");
  65.                         panduan(month);
  66.                 }       
  67.         }
  68.         //循环输入数据查询(1到12以外的区间)
  69.         public static void error(int month)
  70.         {
  71.                 Scanner sc = new Scanner(System.in);
  72.                 String str;
  73.                 while (month<0 || month>12)
  74.                 {       
  75.                         System.out.print("输入月份有误!!"+"\n"+"\n"+"请重新输入(退出请输入0):");
  76.                         month = sc.nextInt();
  77.                         str = getMonth(month);
  78.                         System.out.println(str+"\n");
  79.                         panduan(month);
  80.                 }
  81.         }
  82.         //判断输入数据
  83.         public static void panduan(int month)
  84.         {        //如果在1到12的区间则调用correct
  85.                 if (month>=1 && month<=12)
  86.                         correct(month);
  87.                 //如果在1到12以外的区间,则调用error
  88.                 else if(month<0 || month>12)
  89.                         error(month);
  90.                 //如果等于0,则结束程序
  91.                 else
  92.                         System.out.println("程序结束。");
  93.                         System.exit(0);
  94.         }
  95. }
复制代码

评分

参与人数 1黑马币 +5 收起 理由
Moo頭 + 5 很给力!

查看全部评分

11 个回复

倒序浏览
nice   开启加分模式
回复 使用道具 举报
楼主,请教一下: System.out.println(getMonth(month)+"\n");   不是自动换行吗?为什么后面还要加“\n”?
回复 使用道具 举报
逸风 发表于 2015-4-7 22:40
楼主,请教一下: System.out.println(getMonth(month)+"\n");   不是自动换行吗?为什么后面还要加“\n”? ...

只是空开多一行而已
回复 使用道具 举报
qq250144825 发表于 2015-4-7 23:03
只是空开多一行而已

这里如果定义一个常量就更完美了。
回复 使用道具 举报
加油啊,少年
回复 使用道具 举报
加油 努力  每天进步一点
回复 使用道具 举报
赞一个
回复 使用道具 举报
看的是毕老师的视频吗?
我看的里面没有scanner啊。。。
回复 使用道具 举报
赞一个。。
回复 使用道具 举报
确实挺强的呀,写出这代码不错呀
回复 使用道具 举报
练习中,过来看看
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马