当前位置: 首页 > 面试题库 >

缺少带有for循环的return语句

孔阳炎
2023-03-14
问题内容

我有一个二维布尔数组’poorSignal’,需要编写一个返回网格的方法,如果数组上的某个点为true,则显示X,如果为false,则显示O。这是我的代码:

    public String display()
{
    for(int i = 0; i < mapSize; i++)
    {
        for(int j = 0; j < mapSize; j++)
        {
            if(poorSignal[i][j] = true)
            {
                return "O ";
            }
            else
            {
                return "X ";
            }
        }
        return "\n";
    }
}

当我编译时,它在方法的最后一行给出了“丢失的返回语句”。我也不确定在打印数组时’return“ \ n”是否可以添加新行。

这是一个分配问题,所以我不能直接打印它,也不能仅打印布尔值-它必须是产生网格的方法。


问题答案:

编译器无法知道该循环是否真正运行,因此,您还必须在外部循环之外具有return语句。

但是然后,如果我查看您的代码,则不确定返回是否是您真正想要的。如果您打算打印整个矩阵,则可能要使用StringBuilder,然后在循环内使用append方法。在外部循环之后,使用toString方法返回构建器的字符串表示形式,如下所示:

StringBuilder sb = new StringBuilder();
// loop
sb.append(someValue); 
sb.append('\n');
// after loop
return sb.toString();


 类似资料:
  • 我得到的错误是“缺少return语句”,代码如下: 有人能帮帮我吗?多谢.

  • 我有一个二维布尔数组“poorSignal”,需要编写一个返回网格的方法,如果数组上的一个点为真,则显示X,如果为假,则显示O。这是我的代码: 当我编译时,它在方法的最后一行给出了“missing return statement”。我也不确定“return”\n在打印阵列时是否可以添加新行。 这是一个赋值问题,所以我不能直接打印它,也不能只打印布尔值——它必须是一个生成网格的方法。

  • 我可以找到类似的问题,但我找不到我对这个特定案例期望的答案。 当我执行这段代码时,我得到一个编译错误,上面写着“缺少返回语句”。但是,据我所知,很明显,for循环中的代码将毫无疑问地执行,因为第一次,x=0。因此,对于这种特殊情况,没有理由不在for循环中执行代码。那么,为什么我们还需要在for循环之外声明一个额外的return语句呢?。

  • 关于或语句中使用的return语句,我有一个问题。正如您在下面的方法中所看到的,希望I一个字符串值。问题是,如果在语句块中使用语句,编译器将返回错误。 当然,我可以将方法头更改为,并使用而不是。但这是正确的做法吗?我是不是漏掉了什么? 任何帮助都是非常感谢的。

  • 我不断地得到缺少的return语句并且在解析时到达文件的结尾,然而我已经有了return语句并且我的代码正确地关闭了括号。请帮忙,谢谢

  • 如何将下面的for循环with return语句转换为lambda表达式或流with filter。