Ce face return?
Instructiunea return face doua lucruri simultan:
1. Trimite o valoare inapoi catre codul care a apelat functia (ca un raspuns).
2. Opreste functia imediat - orice cod de dupa return nu se mai executa.
Imagineza-ti ca trimiti pe cineva la magazin sa cumpere lapte. Acea persoana (functia) merge, ia laptele si ti-l aduce inapoi (return). Fara return, ar fi ca si cum persoana merge la magazin, cumpara laptele... si sta acolo. Nu iti aduce nimic!
Sintaxa: return valoare;
Cand o functie ajunge la return, se opreste si trimite valoarea inapoi. Tipul valorii trebuie sa se potriveasca cu tipul de return al functiei.
Orice cod scris dupa return nu se mai executa. E ca un "exit" din functie.
3 moduri de a folosi rezultatul
Cand o functie returneaza o valoare, o putem folosi in mai multe feluri:
Functii care FAC vs. Functii care PRODUC
In C++ exista doua categorii mari de functii:
Nu returneaza nimic. Doar executa ceva (afiseaza, modifica).
Returneaza un rezultat pe care il putem folosi.
void = "Sterge masa!" - chelnerul face actiunea dar nu iti aduce nimic inapoi.
int = "Adu-mi nota de plata!" - chelnerul face ceva si iti aduce un rezultat (nota).
Tipul din declaratie = tipul din return
Daca functia spune ca returneaza int, atunci return trebuie sa trimita un int. La fel pentru float, bool, string, etc.
| Tipul functiei | return trebuie sa fie | Exemplu |
|---|---|---|
| int | un numar intreg | return 42; |
| float | un numar cu zecimale | return 3.14; |
| bool | true sau false | return true; |
| char | un caracter | return 'A'; |
| void | nimic (fara return) | return; (optional) |
return in if/else - pentru cazuri diferite
O functie poate avea mai multe instructiuni return, dar numai una se executa (prima la care ajunge). Acest lucru e util cand ai cazuri diferite:
Trace of maxim function
| Pas | Ce se intampla | Rezultat |
|---|---|---|
| 1 | Se apeleaza maxim(7, 3) - a=7, b=3 | - |
| 2 | Se verifica: a > b? 7 > 3? | DA |
| 3 | Se executa return a; | return 7 |
| 4 | Functia se opreste. else NU se mai executa | - |
bool = true sau false
Functiile de tip bool sunt extrem de utile. Ele raspund la o intrebare cu true (da) sau false (nu). Le poti folosi direct in if!
Calculator de note cu functii
Un program care foloseste mai multe functii cu return: calculeaza media, verifica daca nota e de trecere, si gaseste nota maxima.