Мы знаем, что оператор возврата используется определенным методом. Один используется для возврата результата выполнения функции, а другой используется в функциях с возвратным значением типа void. Это просто оператор возврата (return;). В настоящее время он используется для прекращения выполнения метода, то есть оператора после этого возврата не будет выполнено. Конечно, в этом случае больше не может быть никакого другого утверждения после оператора возврата.
Я столкнулся с некоторыми вопросами, используя оператор RETURN в оператор
Код 1:
static int intc () {int x = 0; try {x = 1; return x;} наконец {x = 3; }} Код 2: Добавьте оператор возврата к окончательному оператору приведенного выше кода
static int intc () {int x = 0; try {x = 1; return x;} наконец {x = 3; return x;}}Код третий:
static int intc () {int x = 0; try {x = 1; return x;} наконец {x = 3; return 0;}} Так каковы результаты выполнения этих трех методов?
Код 1: возврат 1;
Код 2: возврат 3;
Код 3: возврат 0;
Какой принцип?
Причина в том, что когда виртуальная машина Java выполняет метод с возвращающим значением, он создаст область в списке локальных переменных для хранения возвращаемого значения метода. При выполнении оператора возврата он будет читать значение из этой области для возврата.
В коде 1 назначьте 1 переменной x в try, а затем скопируйте значение переменной x в область, где хранится возвратное значение. Наконец, область возврата значения хранит 1, и одна возвращается при выполнении оператора возврата.
В коде 2 1 также назначается переменной x, а затем значение x копируется в область, где хранится возвращаемое значение. В настоящее время значение области, где возвратное значение составляет 1, а затем прыгает к окончательному оператору. В настоящее время 3 присваивается локальной переменной x, а затем скопируйте значение x в область, где хранится возвратное значение, и, наконец, выполняет оператор возврата. Значение в возвращенной области чтение составляет 3.
В третьем коде, операторы, выполненные в TRY, одинаковы. После перейти к оператору, наконец, 3 присваивается локальной переменной, затем 0 присваивается области, где хранится возвратное значение, и, наконец, выполняется оператор возврата. Значение в возвращенной области чтение равно 0, поэтому 0 возвращается.