В Java, когда попытка и, наконец, содержит возвратные операторы, какова ситуация с выполнением? ? Теперь давайте объясним это следующим примером:
Первый случай: TRY содержит оператор возврата и, наконец, не содержит его.
Public Class Teststry {Статическая строка s = ""; {System.out.println ("try ......");Здесь мы определяем строку S, назначите «A» TO S Try, и напрямую возвращаем ее и назначаем «B», наконец, является конечным значением S A или B? Ниже приведены результаты исполнения
попробуйте ..... 17 b 8 a
Мы обнаружили, что конечный результат - это, но B распечатана с приоритетом. Благодаря пошаговой отладке отладки мы обнаружили, что до выполнения возврата в Try, код в наконец будет выполнен, а затем будет выполнен оператор возврата. Если операция возврата наконец включена, что произойдет?
Второй случай: попробуйте и, наконец, содержите возвратные заявления.
Public Class Teststry {Статическая строка s = ""; {System.out.println ("try ......");Какие результаты произойдут, если S = "B"; Строка S A или B?
попробуйте ..... 8 б
Мы обнаружили, что окончательный результат печати - б.
Мы знаем, что оператор возврата используется в определенном методе. , который используется для завершения метода в настоящее время.
public static print () {int c = 1; (Exception e) {e.printstacktrace (); c;Результатом выполнения программы является:
бегать:
Попробуйте исполнение ...
Наконец -то выполняя ...
3
Успешно построенный (общее время: 0 секунд)
Обратите внимание, что в позициях 2 и 3 может быть только один оператор возврата, и должен быть один оператор возврата в 2, 3 и 4. Если 2 выполняется 2, метод закончится, а оператор при 3 не может быть выполнен.
Когда блок оператора TRY выполняется в 1, возвращаемое значение функции будет сохранено в другой временной переменной (разные переменные из C, ее значение составляет 102). Другой блок операторов встречается в 2 -м, а возвращаемое значение хранится во временной переменной (значение - 3).
Public Static Print () {int c = 1; -1} Наконец {c ++;В приведенном выше коде нет оператора возврата в блоке операторов, наконец, возвращает значение первой временной переменной, то есть 102. Результат выполнения следующим образом:
Запустить: TRICKINALLY102 Успешно построен (общее время: 0 секунд)
Заключение: 1. Независимо от того, есть ли оператор возврата в попытке, окончательный оператор определенно будет выполнен (это наконец, и имя хорошо).
2. Если в Try нет оператора возврата, и есть возврат в попытке, затем перед выполнением оператора возврата в TRY, код, наконец, будет выполнен сначала, а затем оператор RETURN в TRY; Включен, наконец, он вернется напрямую и больше не выполнит оператор возврата в TRY.