Gå til innhold

Hvordan returnere flere verdier?


Anbefalte innlegg

Hei alle sammen,

J

eg prøver å løse en oppgave her og har noen problemer med å returnere flere enn en verdier fra en double metode. Jeg ønsker å returnere gjNedbørOkt, gjNedbørNov og gjNedbørDes også vil jeg også skrive ut verdiene hver for seg i void skriv.... her er koden...

 

Klikk for å se/fjerne innholdet nedenfor
class Oblig1 {

 

public static void main (String[] args){

 

Beregninger b = new Beregninger();

b.skriv();

 

}

 

}

 

class Beregninger{

 

int alleDager = 30;

int nedbørOkt = 163; int dagerOkt = 20;

int nedbørNov = 149; int dagerNov = 20;

int nedbørDes = 67; int dagerDes = 14;

 

double nedBør_a(){

 

 

double gjNedbør_a = ((nedbørOkt)+(nedbørNov)+(nedbørDes)/(3));

return gjNedbør_a;}

 

double nedBør_b(){

double gjNedBør_b = ((nedbørOkt/alleDager)+(nedbørNov/alleDager)+(nedbørDes/alleDager));

return gjNedBør_b;}

 

double nedBør_c(){

double gjNedbørOkt = (nedbørOkt/alleDager);

double gjNedbørNov =(nedbørNov/alleDager);

double gjNedbørDes =(nedbørDes/alleDager);

}

 

 

 

void skriv(){

System.out.println("a)\tGjennomsnittlig regn i perioden Okt-Des\t:\t\t\t"+nedBør_a());

System.out.println("b)\tGjennomsnittlig regn for alle dagene i perioden Okt-Des\t:\t"+ nedBør_b());

System.out.println("c)\tGjennomsnittlig regn for alle dagene for hver av månedene\t:"+nedBør_c());

}

 

}

Lenke til kommentar
Videoannonse
Annonse

Vet ikke om dette er den mest praktiske måten å løse problemet ditt på, men jeg vil ikke gjøre om for mye på programmet ditt ;)

 

Ihvertfall det som skal til for at du kan returnere fler enn én verdi er tabeller (på engelsk: arrays). Desverre kan man ikke returnere alle verdiene automatisk ved å kalle én gang på metoden så skriver den det ut i konsollet, man må hente ut en og en verdi. Hvis du ikke har vært borti tabeller foreslår jeg at du søker på det. Er veldig nyttig! Ihvertfall her er løsningen min:

 

Klikk for å se/fjerne innholdet nedenfor
class Oblig1 {

public static void main (String[] args){

Beregninger b = new Beregninger();
b.skriv();

}

}

class Beregninger{

   int alleDager = 30;
   int nedbørOkt = 163; int dagerOkt = 20;
   int nedbørNov = 149; int dagerNov = 20;
   int nedbørDes = 67; int dagerDes = 14;

   double nedBør_a(){
       double gjNedbør_a = ((nedbørOkt)+(nedbørNov)+(nedbørDes)/(3));
       return gjNedbør_a;
   }

   double nedBør_b(){
       double gjNedBør_b = ((nedbørOkt/alleDager)+(nedbørNov/alleDager)+(nedbørDes/alleDager));
       return gjNedBør_b;
   }

   double nedBør_c(int indeks){

       // Dine variabler
       double gjNedbørOkt = (nedbørOkt/alleDager);
       double gjNedbørNov =(nedbørNov/alleDager);
       double gjNedbørDes =(nedbørDes/alleDager);

       // Opretter en tabell med de variablene dine i
       double[] nedbør;
       nedbør = new double[3];
       nedbør[0] = gjNedbørOkt;
       nedbør[1] = gjNedbørNov;
       nedbør[2] = gjNedbørDes;

       // Returnerer verdien med gitt indeks
       return nedbør[indeks];
   }



   void skriv(){
       System.out.println("a)\tGjennomsnittlig regn i perioden Okt-Des\t:\t\t\t"+nedBør_a());
       System.out.println("b)\tGjennomsnittlig regn for alle dagene i perioden Okt-Des\t:\t"+ nedBør_b());
       System.out.println("c)\tGjennomsnittlig regn for alle dagene for hver av månedene\t:" + nedBør_c(0) + ", " + nedBør_c(1) + " og " + nedBør_c(2));
   }

}

 

Altså du kan jo få metoden nedBør_c() til å returnere String da. Slik:

 

return ("c)\tGjennomsnittlig regn for alle dagene for hver av månedene\t:" + nedBør_c(0) + ", " + nedBør_c(1) + " og " + nedBør_c(2));

 

Da trenger du bare å skrive slik til konsollet:

 

System.out.println(nedBør_c());

 

Håper du ble klokere :thumbup:

Endret av kjey
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...