java - 问题如图,为什么返回值是1
大家讲道理
大家讲道理 2017-04-18 09:56:11
0
7
316

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全員に返信(7)
左手右手慢动作

http://m.blog.csdn.net/articl...

いいねを押す +0
PHPzhong

図に示すように、
1 に finally がない場合、return:
は最初に try 内の内容を実行し、リターンされることを理解する必要があります。が実行されますが、実際の return はありません。 go は、finally のステートメントが実行され、その後 return を実行するため、上記の質問のように x1:1 が返され、この時点で return x++ が返されます。 1 ですが、finally はいずれにせよ実行されるので、すぐには戻りませんが、finally のステートメントが最初に実行され、その後 x3:3 が取得されます。 ただし、 の重要な点は です。 finally に return はありません。finally の x への変更は、前の return の値が 1 であるため、前の return の値に影響しません。したがって、後で x の値が最終的に変更されてから return が再度実行されたとしても、前の 1 は引き続き返されます。 つまり、出ても戻りは同じです
2.戻りがある場合。 :
try が最初に実行され、return が実行されますが、この時点では実際の return はありません。その後、finally の return が実行されて直接戻ります。

採用されることを願っています。

いいねを押す +0
阿神

コードフロー
変数の宣言x = 1
この時点では例外をキャッチしてreturn x++を実行しましたx = 2が、x++の値は1でしたが、returnのアクションは実行されませんでした
最後に実行され、x = 3、その後、returnはジャンプして戻ります。

いいねを押す +0
伊谢尔伦

最初に例外をスローし、次に x の値 (1) を返すと、クラス内の x が 1 ずつ増加します。これが正しいかどうかはわかりません。

いいねを押す +0
刘奇

return x++ 演算子。最初に左辺を返し、次に x が 1 ずつ増加します。 return ++xx は 2

を返す必要があります
いいねを押す +0
巴扎黑

式 ++X の意味は次のとおりです。X プラス 1、式の値は X プラス 1 です。

式 X++ の意味は、X プラス 1 ですが、式の値は X のままです。

いいねを押す +0
小葫芦

1. try catchfinally に戻りがある場合は、最初に現在の値がスタックに保存されますが、後続のステートメントは引き続き実行され、finally のステートメントは常に実行されます。ただし、戻り値はあらかじめスタックに置かれているため、戻り値は 1 のままです。最後に try catch に return 文を入れると、異なる実行結果を順番に見ることができます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート