Почему Java не сообщает об отсутствующей ошибке возврата, если возврат доступен только в if-блоке? [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Почему Java не сообщает об отсутствующей ошибке возврата, если возврат доступен только в if-блоке? [дубликат]

Сообщение Anonymous »


Это дублирующий вопрос, на который уже был дан ответ в разделе «Почему мне не нужно предоставлять возвращаемое значение после бесконечного цикла?» [дубликат]

Интересно, почему следующие коды подходят? (Из Leetcode #1 две суммы).

Я думаю, что Java должна сообщать об ошибке отсутствия оператора возврата, но в данном случае это не так?

Хотя описание кода гарантирует, что будет правильный ответ, но зачем писать код следующим образом, чтобы быть уверенным, что компилятор не сообщит об отсутствующей ошибке оператора возврата?

public int[] twoSum1(int[] nums, int target) { для (int я = 0; ; я++) for (int j = i + 1; j < nums.length; j++) if (nums + nums[j] == цель) вернуть новый int[]{i, j}; // Почему мы можем пропустить здесь следующий оператор возврата? // возвращаем новое int[0]; } public int[] twoSum2(int[] nums, int target) { Map idx = new HashMap(); for (int j = 0; ; j++) { int x = nums[j]; если (idx.containsKey(цель - x)) return new int[]{idx.get(target - x), j}; idx.put(х, j); } // Почему мы можем пропустить здесь следующий оператор возврата? // возвращаем новый int[0];} Кроме того, если я настрою случай без правильного ответа, JVM сообщит об ошибке во время выполнения:
Исключение в потоке «main» java.lang.ArrayIndexOutOfBoundsException: индекс 2147483647 выходит за пределы для длины 2 в Solution.twoSum1(Solution.java:5) в Solution.main(Solution.java:19)
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»