【问题标题】:How do I return something as true or false when I have an if() statement?当我有 if() 语句时,如何返回真或假?
【发布时间】:2014-05-11 23:28:45
【问题描述】:

我不完全知道如何措辞,但我想知道如何根据下面的 if 语句确定的内容返回某事是否为真。如果你不明白我在问什么,我很抱歉,但是如果你看一下代码,我想你会明白我在问什么。

代码

public boolean isFinished()
    {
        int row = 0;
        int column = 0;
    if(box[row][column].getValue() != 0)
            {
                if(box[row][column].getValue == box[row][column+1].getValue() && box[row][column].getValue == box[row][column+2].getValue())
                {
                    return true;
                }
                else if(box[row+1][column].getValue == box[row+1][column+1].getValue() && box[row+1][column].getValue == box[row+1][column+2].getValue())
                {
                    return true;
                }
                 else if(box[row+2][column].getValue == box[row+2][column+1].getValue() && box[row+2][column].getValue == box[row+2][column+1].getValue())
                {
                    return true;
                }
                 else if(box[row][column].getValue == box[row+1][column].getValue() && box[row][column].getValue == box[row+2][column].getValue())
                {
                    return true;
                }
                 else if(box[row][column+1].getValue == box[row+1][column+1].getValue() && box[row][column+1].getValue == box[row+2][column+1].getValue())
                {
                    return true;
                }
                 else if(box[row][column+2].getValue == box[row+1][column+2].getValue() && box[row+1][column].getValue == box[row+2][column+2].getValue())
                {
                    return true;
                }
                else
                 {
                     return false;
                 }
            }
            //return whether it's true or false
        }

【问题讨论】:

    标签: java arrays boolean


    【解决方案1】:

    您已经为box[row][column].getValue() != 0 返回true。在任何这些分支中,一旦return 被命中,JVM 就会从那个方法返回,而不仅仅是 if 语句。

    现在只需在外部 if-then 块中添加一个 else 块,它会返回对您的逻辑有意义的内容。

    【讨论】:

    • 但是我必须在方法中返回一些东西。
    • @DavidGilly 你最后的回报应该处理box[row][column].getValue() == 0时的正确答案
    • @Jason Ah,没看到。
    • @DavidGilly 定义一个默认值。例如,return false;。如果您不想使用默认值,并且获取该部分代码在概念上是错误的,请抛出RuntimeException
    【解决方案2】:

    只需在最后的 if 语句中测试您的 getValue() 方法,然后如果您得到您正在寻找的值 return true

    【讨论】:

      【解决方案3】:

      布尔函数最后总是需要一些东西,只需将 else 取出并在最后保留 return false 即可。如果它到达一个 return true 语句,它会在最后遇到 false 语句之前从方法中弹出。

      使用 if 语句对其进行测试,

      if(isFinished){
          //returned true
          //blah blah do something.
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-30
        • 2013-09-05
        • 1970-01-01
        • 2016-12-20
        • 2021-04-11
        • 1970-01-01
        • 2011-01-13
        • 2010-10-02
        相关资源
        最近更新 更多