ماذا تفعل العائد الكلمة الرئيسية في طريقة باطل في جافا؟
سؤال
أنا أنظر إلى مسار العثور على البرنامج التعليمي ولاحظت return
بيان داخل void
الطريقة (الفئة PathTest
, ، الخط 126):
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
أنا مبتدئ في جاوة. هل يمكن لأحد أن يقول لي لماذا هناك؟ بقدر ما أعرف، return
داخل طريقة فراغ غير مسموح بها.
المحلول
إنه يخرج فقط الطريقة في تلك المرحلة. مرة واحدة return
يتم تنفيذها، لن يتم تنفيذ بقية الرمز.
على سبيل المثال
public void test(int n) {
if (n == 1) {
return;
}
else if (n == 2) {
doStuff();
return;
}
doOtherStuff();
}
لاحظ أن التحويل البرمجي ذكي بما يكفي لإخبارك لا يمكن الوصول إليك بعض الكود:
if (n == 3) {
return;
youWillGetAnError(); //compiler error here
}
نصائح أخرى
بإمكانك أن تأخذ return
بطريقة باطل، لا يمكنك فقط إرجاع أي قيمة (كما في return 5;
)، لهذا السبب يسمونه فارغ طريقة. بعض الناس ينتهيون دائما بشكل صريح بطرق الفراغ مع بيان العودة، لكنه ليس إلزاميا. هو - هي يمكن أن تستخدم لترك وظيفة في وقت مبكر، على الرغم من:
void someFunct(int arg)
{
if (arg == 0)
{
//Leave because this is a bad value
return;
}
//Otherwise, do something
}
الكلمة الأساسية ببساطة ينبثق إطار من مكدس المكالمات التي تعود إلى عنصر التحكم إلى السطر بعد مكالمة الوظيفة.
لغة جافا تخصيص يقول أنه يمكنك العودة دون تعبير إذا عودة أسلوبك باطلة.
إنها تعمل على أنها تعود إلى وظيفة مع معلمة محددة، إلا أنها لا تعرج شيئا، حيث لا يوجد شيء للعودة والتحكم مرة أخرى إلى طريقة الاتصال.
إنه يخرج من الوظيفة وإرجاع أي شيء.
شيء مثل return 1;
سيكون غير صحيح لأنه يعيد عدد صحيح 1.
انظر هذا المثال، تريد إضافة إلى القائمة مشروطة. بدون كلمة "العودة"، سيتم تنفيذ جميع ifs وإضافتها إلى قائمة الصفيف!
Arraylist<String> list = new ArrayList<>();
public void addingToTheList() {
if(isSunday()) {
list.add("Pray today")
return;
}
if(isMonday()) {
list.add("Work today"
return;
}
if(isTuesday()) {
list.add("Tr today")
return;
}
}