Programowanie w języku C/C++

Return

  • 2006-04-21 16:03
  • 5 komentarzy
  • 10136 odsłon
  • Oceń ten tekst jako pierwszy
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

winerfresh 2008-12-15 19:47

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";

marcinEc 2006-04-22 14:34

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

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

laki32 2006-04-21 16:22

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 ;)

Coldpeer 2006-04-21 14:32

return to funkcja? :/ Po za tym fajnie jakbyś pisał nagłówki w <h2>, a nie <b> oraz nie mylił ż z ź :/