2 svar
80 visningar
Hexatronic 2 – Fd. Medlem
Postad: 2 jan 2023 19:43 Redigerad: 2 jan 2023 19:58

Returnera heltal som motsvarar beräknad ålder

Hej! Jag är ny med programmering. Min lösning på nedanstående uppgift funkar i att leverera det som efterfrågas så länge jag inte skriver in tokiga årtal som att som nuvarande år skicka in 1983 som parametervärde när personen är född 1985. Då returneras 0 (vilket jag förstår varför givet hur jag kodat). Hur hade man kunnat lösa det bättre?  

//Metodens uppgift är att räkna ut personens ålder baserat
//på födelseår och vilket år det är just nu. Metoden
//ska därför ta in ett årtal som parametervärde.
//Parametervärdet utgörs därför av ett heltal på fyra siffror
//(t.ex. 2022). Metoden ska returnera ett heltal som motsvarar den beräknade åldern.
//du behöver endast visa metodens kod. 

 

//Övriga klassens kod:

 

public class Person
{
// instance variables - replace the example below with your own
private String namn;
private int fodelseAr;

/**
* Constructor for objects of class Person
*/
public Person(String namn, int fodelseAr)
{
// initialise instance variables
this.namn = namn;
this.fodelseAr = fodelseAr;
}

public String getNamn()
{
return namn;

}

public int fodelseAr()
{
return fodelseAr;
}

public void setNamn(String namn)
{
this.namn = namn;

}

public void setFodelseAr(int fodelseAr)
{

this.fodelseAr = fodelseAr;

}

}

 

//Min lösning:

 

public int beraknaAlder (int nuvarandeAr)
{
int alder = 0;

if(nuvarandeAr >= 1000 && nuvarandeAr < 10000 && nuvarandeAr >= fodelseAr) {

// Min kommentar till ovanstånde: sätter en begränsning på indata till fyra siffror vid
//ändring av variabeln alder, samt att nuvarande år måste vara
//antingen större än eller lika med födelseår. Nuvarande
//år kan logiskt inte vara mindre än året en person
//är född.

alder = nuvarandeAr - fodelseAr;

} else {

System.out.println("ange ett nuvarande år som har fyra siffor och är större eller lika med födelseår!");

     }
return alder;
}

Laguna Online 30472
Postad: 3 jan 2023 22:31

Det är väl rätt vettigt. De borde ha sagt något om vad som ska hända om nuvarande år är mindre än födelseåret.

Hexatronic 2 – Fd. Medlem
Postad: 4 jan 2023 11:51
Laguna skrev:

Det är väl rätt vettigt. De borde ha sagt något om vad som ska hända om nuvarande år är mindre än födelseåret.

Missade det. Tack!

Svara
Close