Wir wissen, dass die Return -Anweisung in einer bestimmten Methode verwendet wird. Einer wird verwendet, um das Ausführungsergebnis der Funktion zurückzugeben, und der andere wird in Funktionen mit einem Rückgabewert des Hohlraumtyps verwendet. Es ist nur eine Rückgabeerklärung (Rückgabe;). Zu diesem Zeitpunkt wird es verwendet, um die Ausführung der Methode zu beenden, dh die Aussage nach dieser Rückgabe wird nicht ausgeführt. Natürlich kann es in diesem Fall nach der Rückgabeerklärung keine andere Aussage mehr geben.
Ich habe einige Fragen mithilfe der Return-Anweisung in der Aussage von Try-Catch-finally gestoßen
Code 1:
static int intc () {int x = 0; try {x = 1; return x;} schließlich {x = 3; }} Code 2: Fügen Sie der endgültigen Anweisung des obigen Code eine Rückgabeanweisung hinzu
static int intc () {int x = 0; try {x = 1; return x;} schließlich {x = 3; return x;}}Code drei:
static int intc () {int x = 0; try {x = 1; return x;} schließlich {x = 3; return 0;}} Was sind die Ausführungsergebnisse dieser drei Methoden?
Code 1: Rückgabe 1;
Code 2: Rückgabe 3;
Code 3: Rückgabe 0;
Was ist das Prinzip?
Der Grund dafür ist, dass eine virtuelle Java -Maschine eine Methode mit einem Rückgabewert ausführt, er einen Bereich in der lokalen Variablenliste erstellt, um den Rückgabewert der Methode zu speichern. Bei der Ausführung der Return -Anweisung wird der Wert aus diesem Bereich für die Rückgabe gelesen.
Weisen Sie in Code 1 die Variable x in den Versuch zu und kopieren Sie dann den Wert der Variablen x in den Bereich, in dem der Rückgabewert gespeichert wird. Schließlich wird der Rückgabewertbereich 1 gelagert und eine zurückgegeben, wenn die Rückgabeerklärung ausgeführt wird.
In Code 2 wird 1 auch der Variablen x zugeordnet, und dann wird der Wert von x in den Bereich kopiert, in dem der Rückgabewert gespeichert wird. Zu diesem Zeitpunkt beträgt der Wert des Bereichs, in dem der Rückgabewert 1 ist, und springt dann zur endgültigen Anweisung. Zu diesem Zeitpunkt wird 3 der lokalen Variablen x zugeordnet und dann den Wert von x in den Bereich kopieren, in dem der Rückgabewert gespeichert wird, und schließlich die Rückgabeanweisung ausführt. Der Wert im zurückgegebenen Bereich ist 3.
In Code Drei sind die im Versuch ausgeführten Anweisungen gleich. Nach dem Springen zur endgültigen Anweisung wird 3 der lokalen Variablen zugeordnet, dann wird 0 dem Bereich zugeordnet, in dem der Rückgabewert gespeichert wird, und schließlich wird die Rückgabeanweisung ausgeführt. Der Wert im zurückgegebenen Bereich ist 0, also wird 0 zurückgegeben.