Operatorul return - Rezultatul metodei
Metodele pot returna o anumită valoare. Pentru aceasta se utilizează operatorul return.
return valoare_returnată;
După operatorul return se indică valoarea returnată, care reprezintă rezultatul metodei. Aceasta poate fi o valoare literală, valoarea unei variabile sau o expresie mai complexă.
De exemplu:
public class Program{
public static void main (String args[]){
int x = sum(1, 2, 3);
int y = sum(1, 4, 9);
System.out.println(x); // 6
System.out.println(y); // 14
}
static int sum(int a, int b, int c){
return a + b + c;
}
}
În metodă, ca tip de valoare returnată, în loc de void se utilizează orice alt tip. În acest caz, metoda sum returnează o valoare de tip int, de aceea acest tip este specificat înainte de numele metodei. În plus, dacă pentru metodă este definit un tip de returnare diferit de void, metoda trebuie să utilizeze obligatoriu operatorul return pentru a returna o valoare.
Valoarea returnată trebuie să aibă întotdeauna același tip ca cel indicat în definiția funcției. Dacă funcția returnează o valoare de tip int, atunci după operatorul return trebuie să fie o valoare întreagă, care este un obiect de tip int. În acest caz, aceasta este suma valorilor parametrilor metodei.
Metoda poate utiliza mai multe apeluri ale operatorului return pentru a returna valori diferite în funcție de anumite condiții:
public class Program{
public static void main (String args[]){
System.out.println(daytime(7)); // Good morning
System.out.println(daytime(13)); // Good after noon
System.out.println(daytime(18)); // Good evening
System.out.println(daytime(2)); // Good night
}
static String daytime(int hour){
if (hour > 24 || hour < 0)
return "Invalid data";
else if(hour > 21 || hour < 6)
return "Good night";
else if(hour >= 15)
return "Good evening";
else if(hour >= 11)
return "Good after noon";
else
return "Good morning";
}
}
Aici, metoda daytime returnează o valoare de tip String, adică un șir de caractere, iar în funcție de valoarea parametrului hour, șirul returnat va fi diferit.
Ieşirea din metodă
Operatorul return este utilizat pentru a returna o valoare din metodă, dar și pentru a ieși din metodă. În acest caz, operatorul return este utilizat în metode care nu returnează nimic, adică au tipul void:
public class Program{
public static void main (String args[]){
daytime(7); // Good morning
daytime(13); // Good after noon
daytime(32); //
daytime(56); //
daytime(2); // Good night
}
static void daytime(int hour){
if (hour > 24 || hour < 0)
return;
if(hour > 21 || hour < 6)
System.out.println("Good night");
else if(hour >= 15)
System.out.println("Good evening");
else if(hour >= 11)
System.out.println("Good after noon");
else
System.out.println("Good morning");
}
}
Dacă valoarea transmisă în metoda datetime este mai mare de 24 sau mai mică de 0, ieșim pur și simplu din metodă. În acest caz, nu este necesar să specificăm vreo valoare după return.