返回方法中的数组

时间:2013-04-11 03:49:31

标签: java arrays methods parameters return

我有一个返回String []的方法,具体取决于先前的用户输入,该输入将确定参数是“INTERNATIONAL”还是“DOMESTIC”。无论如何,两个输入都应该导致创建两个不同的String []。当我尝试编译时,我得到一个“缺少返回语句”错误消息。我怎样才能解决这个问题?

这是我的方法:

   public String[] typeflight(String type)
     { 
        String type2= type.toUpperCase();
        if (type2.equals("INTERNATIONAL"))
        {
            String[] flights = {"B738 to Melbourne, Australia ", "A380 to Beijing, China ", "F348 to London, England ", "M225 to Ontario, Canada",
                    "E987 to Tokyo, Japan ", "T451 to Copenhagen, Denmark ", "S501 to Seoul, South Korea ", "N778 to Venice, Italy ",
                    "B621 to Mexico City, Mexico ", "L454 to Rabat, Morocco ", "C998 to San Jose, Costa Rica", "H859 to Amsterdam, Netherlands "};
            return flights;

        }
        else
        if(type2.equals("DOMESTIC"))
        {   
            String[] flights = {"459 to Seattle, Washington ", "662 to Los Angeles, California ", "712 to New Orleans, Louisiana ", "285 to Chicago, Illinois ",
                    "896 to Honolulu, Hawaii ", "476 to Boston, Massachusetts ", "823 to Newark, New Jersey ", "902 to Miami, Florida ",
                    "353 to Fort Wayne, Indiana ", "112 to Des Moines, Iowa ", "", "294 to Las Vegas, Nevada"};
            return flights;

        }
    }

提前致谢!

5 个答案:

答案 0 :(得分:4)

如果这些if语句都不成立,会发生什么?那么你的方法没有返回值。

e.g。 type2 = "ALIEN"

也许你的程序中有逻辑阻止这种情况发生。但Java编译器不知道这一点。

对此进行快速而肮脏的修复只是在方法的末尾添加return null;。 “更好”的方法是使用异常来进行非法争论。

答案 1 :(得分:2)

如果两个if条件都失败,则函数不会返回任何内容。如果两个条件都不匹配,那么return null

public String[] typeflight(String type)
 { 
    String type2= type.toUpperCase();
    if (type2.equals("INTERNATIONAL"))
    {
        // Code
        return flights;

    }
    else
    if(type2.equals("DOMESTIC"))
    {   
        // Code 
        return flights;

    }

    return null;
}

答案 2 :(得分:0)

您的问题是您有ifelse if,但没有else。 Java抱怨type2不等于两个给定值中的任何一个的情况都没有得到解决。

答案 3 :(得分:0)

编译器需要一个外部“return语句”来确定返回结果。

答案 4 :(得分:0)

您应该拥有所有案例的return语句。所以声明String的航班在if else和endailize dynmically旁边,最后返回为

 public String[] typeflight(String type)
    {
    String[] flights;
         if(condition1){
           flights  = ....
           }
         else{
            flights = .....   
      }
          return flights;
    }

此外,您应该避免使用相同名称

声明数据成员