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;
}
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.
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!