【问题标题】:Missing return statement making triangle program缺少返回语句制作三角程序
【发布时间】:2014-02-17 07:44:45
【问题描述】:
public String displayType(int side1, int side2,int side3)
    {
        if(( side1+side2 > side3))

            if(( side1==side2) && (side2==side3))//tell if equalateral
            {
                return ("Equalateral Triangle.");
            }
            else if (( side1==side2) & (side2 != side3) || (side1 == side3) & (side3 != side1))//tells if isosceles
            {
                return ("Isosceles Triangle.");
            }
            else if ((side1 != side2) & (side2 != side3))//tells if scalene
            {
                return ("Scalene Triangle.");        

        }
    } // missing return statement here error

我正在制作一个确定三角形的程序。这是我在编译时遇到错误的地方。它在最后给出了一个缺少的返回语句。如何解决这个问题?

【问题讨论】:

  • 如果不是true怎么办?您将丢失return 声明。
  • ..如果 if-else 块中的所有条件都失败了怎么办?它会返回什么......那就是什么错误
  • 有人注意到和比较只是第一次可以吗?应该总是 &&,而不是 &
  • 我明白你们所说的,如果条件失败,它需要返回一些东西,但最后会是什么样子?我正在学习java,我需要一个例子。

标签: java return


【解决方案1】:

原因是,你所有的条件都执行失败了怎么办??

可能的解决方案:

  • 你需要在那里提供一个 else 块。当你提供一个 else 块,那么可以肯定总是有机会返回 值,在 ifelse 中。

  • 不考虑 if-else 的默认返回语句,其中 返回值应该分块决定。

【讨论】:

    【解决方案2】:

    由于最终逻辑(在您的情况下)将始终为真,因此您不需要最终的else if

    简单

    return ("Scalene Triangle."); 
    

    但是如果以下如果为假会发生什么?

    if(( side1+side2 > side3))
    

    你需要退货。

    【讨论】:

      【解决方案3】:

      编译器说你必须返回一些东西,因为如果你所有的 IF 条件都失败了,它会做什么?

      你可以这样做:

      public String displayType(int side1, int side2,int side3)
      {
          if(( side1+side2 > side3))
      
              {
      if(( side1==side2) && (side2==side3))//tell if equalateral
              {
                  return ("Equalateral Triangle.");
              }
              else if (( side1==side2) & (side2 != side3) || (side1 == side3) & (side3 != side1))//tells if isosceles
              {
                  return ("Isosceles Triangle.");
              }
              else if ((side1 != side2) & (side2 != side3))//tells if scalene
              {
                  return ("Scalene Triangle.");        
      
          }
      return ("It is not a triangle");
      } // missing return statement here error
      

      【讨论】:

        【解决方案4】:

        试试这个

        public String displayType(int side1, int side2,int side3)
        {
            if(( side1+side2 > side3)){
        
                if(( side1==side2) && (side2==side3))//tell if equalateral
                {
                    return "Equalateral Triangle.";
                }
                else if (( side1==side2) & (side2 != side3) || (side1 == side3) & (side3 != side1))//tells if isosceles
                {
                    return "Isosceles Triangle.";
                }
                else if ((side1 != side2) & (side2 != side3))//tells if scalene
                {
                    return "Scalene Triangle.";        
        
                }
                                }
          else{
             return "Not a triangle";
              }
          }
        

        【讨论】:

        • 它没有用。我仍然收到错误消息。
        • 那会是什么样子?对不起,我更像是一个视觉学习者。
        • @user3296193 我在之前评论中给出的代码是否正在运行?
        猜你喜欢
        • 2013-11-30
        • 2017-01-26
        • 2017-09-21
        • 2021-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-21
        • 2021-07-11
        相关资源
        最近更新 更多