Gå til innhold

void, return, rekursjon :(


Anbefalte innlegg

Har et lite spørsmål angående 'return'.

Hvis jeg kjører denne rekursive metoden:

   static void rek2(int f){
out.println(f);
if(f==1)
    return;
else{
    rek2(f-1);
    return;
}

 

får jeg utskrift til skjerm som teller ned fra opprinnelig verdi av f og til 1.

Spørsmålet er, siden metoden er void, hvorfor må jeg ha med return? Det blir brukt en del i boka mi her, men forstår ikke helt hva return gjør i koden. Noen som kan forklare?

Lenke til kommentar
Videoannonse
Annonse

Det er helt unødvendig å bruke "return" i det eksemplet der. I tillegg til å returnere verdier kan "return" også brukes til å avslutte en metode på en vilkårlig plass i koden. Dette bør man helst unngå, siden det lett skaper uoversiktelig kode.

Lenke til kommentar
På det andre: Metoder av type void avsluttes alltid med return.

Å?

 

Nå har jeg programmert en del, selv om jeg nok ikke kjenner alle slike "regler", men dette har aldri jeg lært. Så lenge metoden ikke returnerer noe så hvorfor bruke return? Metoden er vel like avsluttet når det ikke er mer kode å kjøre :) (om det da ikke er for å hoppe ut av en løkke).

 

Altså, kan godt være du har rett, men si meg hvorfor. Funker å IKKE gjøre det også :)

 

PS. Tar forbehold om at jeg skjønte riktig hva det var snakk om her :p

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...