نحن نعلم أن عبارة الإرجاع تستخدم بطريقة معينة. يتم استخدام واحد لإرجاع نتيجة التنفيذ للوظيفة ، والآخر يستخدم في وظائف ذات قيمة إرجاع من نوع الفراغ. إنه مجرد بيان العودة (العودة ؛). في هذا الوقت ، يتم استخدامه لإنهاء تنفيذ الطريقة ، أي أن البيان بعد هذه الإرجاع لن يتم تنفيذها. بالطبع ، في هذه الحالة ، لم يعد هناك أي بيان آخر بعد بيان العودة.
لقد واجهت بعض الأسئلة باستخدام عبارة الإرجاع في بيان المحاولة--فونالي
الرمز 1:
ثابت int intc () {int x = 0 ؛ حاول {x = 1 ؛ إرجاع x ؛} أخيرًا {x = 3 ؛ }} الرمز 2: أضف عبارة إرجاع إلى بيان الرمز أعلاه أخيرًا
int intc () {int x = 0 ؛ حاول {x = 1 ؛ إرجاع x ؛} أخيرًا {x = 3 ؛ return x ؛}}الرمز الثالث:
int intc () {int x = 0 ؛ حاول {x = 1 ؛ إرجاع x ؛} أخيرًا {x = 3 ؛ return 0 ؛}} إذن ما هي نتائج تنفيذ هذه الطرق الثلاث؟
الرمز 1: إرجاع 1 ؛
الرمز 2: العودة 3 ؛
الرمز 3: إرجاع 0 ؛
ما هو المبدأ؟
والسبب هو أنه عندما يقوم جهاز Java Virtual بتنفيذ طريقة ذات قيمة إرجاع ، فإنه سيقوم بإنشاء منطقة في القائمة المتغيرة المحلية لتخزين قيمة الإرجاع للطريقة. عند تنفيذ عبارة الإرجاع ، ستقرأ القيمة من هذه المنطقة للعودة.
في الرمز 1 ، قم بتعيين 1 للمتغير x في المحاولة ، ثم انسخ قيمة المتغير x إلى المنطقة التي يتم فيها تخزين قيمة الإرجاع. أخيرًا ، يتم إرجاع مساحة قيمة قيمة الإرجاع 1 ، ويتم إرجاعها عند تنفيذ عبارة الإرجاع.
في الرمز 2 ، يتم تعيين 1 أيضًا للمتغير x ، ثم يتم نسخ قيمة x إلى المنطقة التي يتم فيها تخزين قيمة الإرجاع. في هذا الوقت ، تكون قيمة المنطقة التي تكون فيها قيمة الإرجاع 1 ، ثم تقفز إلى البيان أخيرًا. في هذا الوقت ، يتم تعيين 3 للمتغير المحلي X ، ثم نسخ قيمة X إلى المنطقة التي يتم فيها تخزين قيمة الإرجاع ، وتنفيذ عبارة الإرجاع أخيرًا. القيمة في المنطقة التي تم إرجاعها هي 3.
في الرمز الثالث ، فإن العبارات التي تم تنفيذها في المحاولة هي نفسها. بعد القفز إلى البيان أخيرًا ، يتم تعيين 3 للمتغير المحلي ، ثم يتم تعيين 0 إلى المنطقة التي يتم فيها تخزين قيمة الإرجاع ، وأخيراً يتم تنفيذ عبارة الإرجاع. القيمة في المنطقة التي تم إرجاعها هي 0 ، لذلك يتم إرجاع 0.