بيان العودة

في البرمجة ، إرجاع هو بيان يوجه البرنامج إلى مغادرة الروتين الفرعي والعودة إلى عنوان المرسل. يقع عنوان المرسل حيث تم استدعاء الروتين الفرعي. في معظم لغات البرمجة ، يعد ملف بيان العودة اما إرجاع أو قيمة الإرجاع ، حيث تكون القيمة متغيرًا أو معلومات أخرى تعود من الروتين الفرعي. فيما يلي مثال على كيفية استخدام بيان الإرجاع في ملف بيرل لغة برمجة.
my $rsexample = 1; print 'Example of a return statement. '; &rsexample; print 'Value now equals: $rsexample '; sub rsexample { $rsexample++; return $rsexample; }
في المثال أعلاه ، تم تعيين متغير rsexample أولاً على أنه يساوي 1. ثم ، عندما يسمى الإجراء الفرعي rsexample ، تتم زيادة هذه القيمة بمقدار 1. عندما يعود البرنامج إلى عنوان الإرجاع ، يطبع البرنامج القيمة الآن تساوي: 2 . على عكس البعض الآخر لغات البرمجة ، إذا لم يكن لدى Perl تعليمة عودة في الروتين الفرعي ، فإنها تُرجع آخر قيمة للتعليمات. في المثال أعلاه ، ستظل الشفرة تعمل بنفس الطريقة حتى لو لم تكن جملة الإرجاع في الروتين الفرعي.
في المثال جافا سكريبت أدناه ، تعود الوظيفة إلى الكود الذي يطلق عليها إذا كان الرقم المرسل أقل من واحد.
function a (num) { if (num <1) { return; } else { document.write('The number is' + num + '
); } } a(0); document.write('I like numbers greater than 0');
في هذه الحالة ، الرقم المرسل إلى الوظيفة هو 0. لذا ، تعود الوظيفة إلى الرمز بعد استدعاء الوظيفة ، وتكتب النص 'أحب الأرقام الأكبر من 0'. إذا كان الرقم 1 بدلاً من ذلك ، فسيتم كتابة النص 'الرقم 1' أولاً ، وسيتم كتابة النص 'أحب أرقامًا أكبر من 0' أسفله.
إذا كانت لغة البرمجة تسمح لعبارة الإرجاع بإرسال قيمة مرة أخرى ، فيمكن استخدام هذه القيمة في الكود الذي يطلق على الوظيفة. يوضح الكود أدناه (باستخدام JavaScript مرة أخرى) مثالاً على كيفية القيام بذلك.
function a (num) { if (num <1) { return false; } else { return true; } }
var x = a(0);
if (x === true) { document.write('The number is greater than 0'); } else { document.write('The number is not greater than 0'); }
في هذه الحالة ، يتم تعيين نتيجة الدالة (القيمة المعادة) إلى المتغير x. تقوم الدالة بإرجاع القيمة 'true' إذا كان الرقم المرسل إليها أكبر من واحد ، وإرجاع القيمة 'false' بخلاف ذلك. نظرًا لأن القيمة المرسلة إلى الوظيفة في هذه الحالة هي 0 ، فإن الدالة ترجع على أنها خطأ. تستمر الوظيفة في تقييم العبارة الشرطية ، التي تكتب 'الرقم ليس أكبر من 0' على الصفحة ، لأن القيمة التي تم إرجاعها إلى المتغير x خاطئة.