ELR Skrevet 16. september 2005 Del Skrevet 16. september 2005 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
mar Skrevet 16. september 2005 Del Skrevet 16. september 2005 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
buskmann Skrevet 16. september 2005 Del Skrevet 16. september 2005 Jeg har ikke testet, men jeg tror du må ha et semikolon i if'en, og da er det like greit å ta med return, for å øke lesbarheten. Lenke til kommentar
mar Skrevet 16. september 2005 Del Skrevet 16. september 2005 static void rek2 (int f) { out.println (f); if (f > 1) { rek2 (f - 1); } } Er vell omtrent slik det burde vært gjort. Lenke til kommentar
ELR Skrevet 17. september 2005 Forfatter Del Skrevet 17. september 2005 Så return brukes kun her for å avslutte koden/metoden? Kort fortalt: Metode av type void kan avsluttes med return, uten verdi? Takker for oppklaring, hjalp meg mye! Lenke til kommentar
buskmann Skrevet 17. september 2005 Del Skrevet 17. september 2005 På det første: Ja. På det andre: Metoder av type void avsluttes alltid med return. Lenke til kommentar
smetho Skrevet 17. september 2005 Del Skrevet 17. september 2005 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 Lenke til kommentar
buskmann Skrevet 17. september 2005 Del Skrevet 17. september 2005 Min feil. Jeg må visst programmere mer ... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå