黑马程序员技术交流社区

标题: 今天自习把刚学的if、while、Scanner、方法调用,结合在一起... [打印本页]

作者: qq250144825    时间: 2015-4-5 23:41
标题: 今天自习把刚学的if、while、Scanner、方法调用,结合在一起...
本帖最后由 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. }
复制代码


作者: Moo頭    时间: 2015-4-7 00:07
nice   开启加分模式
作者: 逸风    时间: 2015-4-7 22:40
楼主,请教一下: System.out.println(getMonth(month)+"\n");   不是自动换行吗?为什么后面还要加“\n”?
作者: qq250144825    时间: 2015-4-7 23:03
逸风 发表于 2015-4-7 22:40
楼主,请教一下: System.out.println(getMonth(month)+"\n");   不是自动换行吗?为什么后面还要加“\n”? ...

只是空开多一行而已
作者: 火七君    时间: 2015-4-8 19:11
qq250144825 发表于 2015-4-7 23:03
只是空开多一行而已

这里如果定义一个常量就更完美了。
作者: 时过境迁    时间: 2015-4-8 21:15
加油啊,少年
作者: 九个太阳学程序    时间: 2015-4-8 21:19
加油 努力  每天进步一点
作者: 野马奔腾    时间: 2015-4-8 21:22
赞一个
作者: schwiftX    时间: 2015-4-8 21:25
看的是毕老师的视频吗?
我看的里面没有scanner啊。。。
作者: 朱军    时间: 2015-4-8 21:30
赞一个。。
作者: 帆风顺    时间: 2015-4-8 21:43
确实挺强的呀,写出这代码不错呀
作者: 刚起步的小马驹    时间: 2015-4-8 23:13
练习中,过来看看




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2