黑马程序员技术交流社区

标题: 代码中的问题,输出结果有问题 [打印本页]

作者: 吴超    时间: 2012-5-9 15:05
标题: 代码中的问题,输出结果有问题
  1. import java.util.Scanner;
  2. class WeekDemo
  3. {
  4.         private static int week;
  5.         public static void main(String []args)
  6.         {       
  7.                 Scanner input=new Scanner(System.in);
  8.                 System.out.println("请输入月份");
  9.                 int week=input.nextInt();
  10.                 System.out.println(week);
  11.                 show();
  12.         }
  13.         static void show()
  14.         {
  15.                
  16.                 if(week<1 || week>12)
  17.                 {
  18.                         System.out.println("你所输出的不正确");
  19.                 }
  20.                 else if(week>=3 && week<=5)
  21.                 {
  22.                         System.out.println(week+"月份是春季");
  23.                 }
  24.                 else if(week>=6 && week<=8)
  25.                 {
  26.                         System.out.println(week+"月份是夏季");
  27.                 }
  28.                 else if(week>=9 && week<=11)
  29.                 {
  30.                         System.out.println(week+"月份是秋季");
  31.                 }
  32.                 else{
  33.                         System.out.println(week+"月份是冬季");
  34.                 }
  35.         }
  36. }
复制代码

作者: 刘亚超    时间: 2012-5-9 15:17
你的代码09行,又定义了一个局部变量  int week 。把int 去掉就可以了。
作者: 黄秋    时间: 2012-5-9 15:24
int week=input.nextInt(); 改为: week=input.nextInt();  不要那 int,如果要的话,就是局部变量。
其实,show() 改为带参的方法更好,具体自己试试。

作者: HeiMaYSL    时间: 2012-5-9 16:10
import java.util.Scanner;
class WeekDemo
{
        private static int week;
        public static void main(String []args)
        {        
                Scanner input=new Scanner(System.in);
                System.out.println("请输入月份");
                int week=input.nextInt();    //把这里的int 去掉,因为,你上面已经定义过成员变量int week了,如果你在这里再重新定义的话,就是局部变量了,就只能在main这个大括号中有用了。
而且,这里你要使用的week就是上面定义过的week。这里你就不应该再重新定义一个新的了。
                System.out.println(week);
                show();
        }
        static void show()
        {
               
                if(week<1 || week>12)
                {
                        System.out.println("你所输出的不正确");
                }
                else if(week>=3 && week<=5)
                {
                        System.out.println(week+"月份是春季");
                }
                else if(week>=6 && week<=8)
                {
                        System.out.println(week+"月份是夏季");
                }
                else if(week>=9 && week<=11)
                {
                        System.out.println(week+"月份是秋季");
                }
                else{
                        System.out.println(week+"月份是冬季");
                }
        }
}
作者: 江杰    时间: 2012-5-9 18:34
import java.util.Scanner;



class WeekDemo

{

        private static int week;

        public static void main(String []args)

        {        

                                Scanner input=new Scanner(System.in);

                System.out.println("请输入月份");

              week = input.nextInt();//只要去掉此处的int week 就行 ,应为你又定义了一个成员变量,在再这里定义就成了局部变量了

                System.out.println(week);

                show();

        }

        static void show()

      {

               

                if(week<1 || week>12)

                {

                     System.out.println("你所输出的不正确");

               }

               else if(week>=3 && week<=5)

               {

                       System.out.println(week+"月份是春季");

               }

                else if(week>=6 && week<=8)

                {

                        System.out.println(week+"月份是夏季");

                }

                else if(week>=9 && week<=11)

                {

                        System.out.println(week+"月份是秋季");

               }

                else{

                       System.out.println(week+"月份是冬季");

               }

        }
建议:我运行了下 能得出结果,但是每次输如月份后判断完了 后必须重新编译运行一次,
     是否可以改进一下,只运行一次,就能随便判断每个月。
作者: 黄秋    时间: 2012-5-9 18:53
看到大家给出的代码,都没带参数的。其实,show() 改为带参数的方法,不用全局变量,只用局部变量更好,原因就不详细说了。
  1. import java.util.Scanner;
  2. class WeekDemo
  3. {
  4.         public static void main(String []args)
  5.         {        
  6.                 Scanner input=new Scanner(System.in);
  7.                 System.out.println("请输入月份");
  8.                 int week=input.nextInt();
  9.                 System.out.println(week);
  10.                 show(week);
  11.         }
  12.         static void show(int week)
  13.         {
  14.                 if(week<1 || week>12)
  15.                 {
  16.                         System.out.println("你所输入的不正确");
  17.                 }
  18.                 else if(week>=3 && week<=5)
  19.                 {
  20.                         System.out.println(week+"月份是春季");
  21.                 }
  22.                 else if(week>=6 && week<=8)
  23.                 {
  24.                         System.out.println(week+"月份是夏季");
  25.                 }
  26.                 else if(week>=9 && week<=11)
  27.                 {
  28.                         System.out.println(week+"月份是秋季");
  29.                 }
  30.                 else{
  31.                         System.out.println(week+"月份是冬季");
  32.                 }
  33.         }
  34. }
复制代码





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