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

缺少未抛出new IllegalArgumentException得return语句

董砚
2023-03-14
class Solution {
    public int[] twoSum(int[] nums, int target) {
        for (int i = 0; i < nums.length; i++) {
            for (int j = i + 1; j < nums.length; j++) {
                if (nums[i] + nums [j] == target) {
                    return new int[] {i, j};
                }
            }
        }
        throw new IllegalArgumentException("No two sum solution");
    }
}

共有1个答案

穆丁雨
2023-03-14

编译器无法知道您的假设,即只有一个解决方案。

关于语句可达性的规则实际上是相当基本的。特别是,由于存在外部循环上的循环保护,而不是值为true的常量表达式,编译器认为可能永远不会执行循环主体。因此,您需要处理可能情况。

因为该方法是非空的,所以您必须返回一个值或抛出一个异常。

 类似资料:
  • 我一直得到一个丢失的返回语句错误,但我不知道在哪里。每次跟随代码,我都感觉到至少有一个if语句提供了return语句。 代码:

  • 我有以下代码 null 我错过了什么?

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

  • 我对编程很陌生,所以这个问题看起来很傻。下面提到的方法有一个作为int数组的返回类型。当我们不抛出任何未经检查的异常时,它会抛出一个我理解的错误。但是为什么包含一个未检查的异常会删除那个错误呢?它仍然没有任何返回语句,不是吗?

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

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