Return

laki32

return - słowo kluczowe; zwraca się za jego pomocą wartość funkcji.

Składnia

return zmienna

Wynik funkcji musi być tego samego typu co funkcja, czyli:

int funkcja()
{
  int a = 5;
  return a;
}

W przypadku próby zwrócenia wyniku innego typu niż funkcja kompilator zgłosi błąd:

int funkcja()
{
  char a[] = "abcdefg";
  return a; // powinien być zwrócony wynik typu int, więc kompilator pokaże błąd
}

Możliwe jest także zwrócenie wyniku w postaci innej niż zmienna, np.:

int funkcja()
{
  return 5;
}

Return przydaje się też do zakończenia wykonywania dowolnej procedury (funkcji, która zwraca void)

#include <iostream>
 
void sprawdz_wiek(int wiek)
{
  if (wiek < 18) return;
 
  // poniższa linijka zostanie tylko jeżeli wiek >= 18
  std::cout << "Witaj dorosły człowieku!" << std::endl;
}

Przykład

#include <iostream>
 
int dodaj(int a,b)
{
  int wynik = 0;
  wynik = a + b;
  return wynik;
}
 
int main()
{
  int wynik = 0;
  wynik = dodaj(2,3);
  std::cout << wynik << endl;
  return 0;
}

W sekcji głównej programu (main) zadeklarowaliśmy zmienną wynik, do której przypisalismy wynik działania funkcji dodaj. Skąd wiadomo jaką liczbę zwróci funkcja? Właśnie do tego słuźy funkcja return. To dzięki niej funkcja może dać wynik.

5 komentarzy

Marcin tylko że char to tak naprawdę typ liczbowy, który jest po prostu wyświetlany jako znak :P
Bo jak inaczej działało by to:

char znak = 'A';
if( znak == 65 )
std::cout << "Znak jest też cyfrą!!!\n";

2+
return nie tylko zwraca wartość:
void foo()
{
//...
return;
}

Można zwracać inny typ:
int foo()
{
char val = 5;
return val;
}

Sory - to było pisane na informatyce jak nauczyciel nawijał o dyskach czy cuś. A ż i ź myliło mi sie bo pisałem to na MACu a tam sytuacja z polskimi literami wygląda troche inaczej ;)

return to funkcja? :/ Po za tym fajnie jakbyś pisał nagłówki w

, a nie <b> oraz nie mylił ż z ź :/</p>