字符串不返回任何内容

时间:2014-10-13 03:32:28

标签: java string if-statement

所以我正在编写一个程序,根据使用参数设置的日期打印出季节。我的问题是通过使用公共静态字符串和相应的返回语句,程序在执行

时不打印任何内容
public class Lab06 {

  public static void main (String [] args) {
     season(12, 15);

  }

  public static String season(int month, int day) {
     if ((((month == 12) && (day >= 16))) || (((month <= 2) && (day <= 31)))
      || (((month == 3) && (day <= 15)))) {
        return "Winter";
     }
     else if ((((month == 3) && (day >= 16)) || ((month == 4 || month == 5) && (day <= 31))
      || ((month == 6) && (day <= 15)))) {
        return "Spring";
     }
     else if ((((month == 6) && (day >= 16)) || ((month == 7 || month == 8) && (day <= 31))
      || ((month == 9) && (day <= 15)))) {
        return "Summer";
     }
     else {
        return "Fall";
     }
  }   

使用当前设置的参数,它应该返回&#34; Fall&#34;,但是当我执行程序时它什么也没做。

我也提前尝试使用public static void和相应的system.out.print语句来检查我的问题是否存在于if语句中。

public class Lab06 {

   public static void main (String [] args) {
      season(12, 15);

   }

   public static void season(int month, int day) {
      if ((((month == 12) && (day >= 16))) || (((month <= 2) && (day <= 31)))
       || (((month == 3) && (day <= 15)))) {
         return "Winter";
      }
      else if ((((month == 3) && (day >= 16)) || ((month == 4 || month == 5) && (day <= 31))
       || ((month == 6) && (day <= 15)))) {
         return "Spring";
      }
      else if ((((month == 6) && (day >= 16)) || ((month == 7 || month == 8) && (day <= 31))
       || ((month == 9) && (day <= 15)))) {
         return "Summer";
      }
      else {
         System.out.print("Fall");
      }
   }   

通过这样做,我的程序确实按预期工作,所以我的if语句

没有任何问题

对于此分配,我需要使用public static String

提前致谢!

4 个答案:

答案 0 :(得分:1)

在java中调用方法,比如

season(12, 15);

绝对不会导致输出。试试这个:

System.out.print(season(12, 15));

答案 1 :(得分:1)

您只返回了该值,但没有对此做任何事情。

使用

System.out.print(season(12,15));

答案 2 :(得分:1)

在Java中我们称之为方法     季(12,15); 并且您的方法返回一个String值,但在您的情况下,您想要打印该值,因此您可以通过两种方式执行此操作 -

第一种方法 -

String returnValue = season(12,15);

System.out.println("return value" + returnValue);  // By this approach you can use your store value later also.

第二种方法 -

System.out.println( season(12,15));

答案 3 :(得分:0)

您的返回类型不匹配:

static void
...
return "Winter";

您改为使用static String返回字符串值。

然后,您可以根据该功能打印出该值。

String season = season(12, 15);
System.out.println(season);

或只是

System.out.println(season(12, 15));

您也可以从第二个示例中的函数进行打印。应将其调整为返回以将其传递回调用者。