当前位置: 首页 > 知识库问答 >
问题:

为什么我不需要在无尽循环之后提供返回值?[副本]

许嘉福
2023-03-14

答案:这个线程的顶部答案基本上回答了我的问题:在一个非void方法编译中缺少return语句。

我想知道为什么不需要在这个private方法中返回一个值?

public class Test {
  private String testLoop() {
    while(true) { }
  }
  public static void main(String[] args) {
    Test test = new Test();
    test.testLoop();
  }
}

我觉得这样不应该编译。然而,它编译得很好。这在哪里被定义为合法?

在这种情况下,将方法更改为:

private String testLoop() {
  while(true) { 
    if(false == true) { 
      break;
    }
  }
  return null;
}

共有1个答案

越麒
2023-03-14
private String testLoop() {
    while(true) { }  //infinite loop
}

上面的方法永远不会返回,因为那里有无限循环。所以它不是期望回报,或者它永远不会达到回报。

 类似资料:
  • 问题内容: 考虑一下这个功能: 有人可以解释一下为什么L1和L2显然无法到达时没有给出警告,而L3却给出了警告。 问题答案: 因为就编译器而言,这只是另一个方法调用。 它所做的是结束过程这一事实只能从实现中找到(这是本机代码,而没有任何区别)。 如果你必须把你的代码(通常也最好避免它,除非你想返回0以外的代码),它应该是一个方法,返回,例如。这样更好。 关于可达性,解释是相同的:是Java语言的关

  • 我有一个方法,它检查一个对象是否已经存在于数组列表中,如果存在,则用新对象替换索引,如果不存在,则添加新对象。 当我编写方法时,我没有返回类型。我收到一个错误,建议我将返回类型设置为void,所以我就这样做了。然后我得到了另一个错误,返回类型必须是布尔的。我唯一的问题是方法本身本质上(至少对我来说)不是true/false返回。我需要它做的只是在ArrayList中添加/替换一个对象,而不是返回任

  • 我正在写一份简单的银行申请书。在我的程序中,我使用了while循环。如果用户输入错误,它将再次提示用户输入。 现在的问题是我无法编写任何语句。它总是显示错误(比如:unreachable语句),最终该行不会被打印出来。 我该怎么解决这个问题? [我之所以需要使用,是因为我想打印用户输入的所有信息。] 我正在从事的项目:

  • 假设我有以下代码。 如果我的目标是使用提前退出,那么我是否也应该养成之后立即返回ing的习惯?

  • 我觉得这给了我很小的灵活性每当我使用这个函数。使用此函数时,我通常会查找元素的第一次出现,但它只返回,我发现这一点有些欠缺。 使用此函数的主要原因是每当找到元素时,都会循环,因此使用会失去作用,因为不会短路。是相同的。 我是遗漏了什么,还是必须使用循环来获取JavaScript中的第一个匹配元素?

  • 我的代码需要反复提示用户输入一个整数。当用户不再想继续输入数字时,输出用户输入的所有正数之和,然后输出用户输入的所有负数之和。以下是我到目前为止的情况。