Logiska uttryck (2)
Skriv en metod vid namn daysPerMonth med en parameter monthNbr av typen int. Denna metod ska returnera antal dagar i månad nummer monthNbr. Månaderna numreras 1-12 (skottår försummas).
Mitt lösningsförslag:
Jag får följande felmeddelande:
Du måste ange en returtyp vid deklarationen.
Det ska alltså stå
public static int daysPerMonth() {
Du saknar även ett return-statement som returnerar resultatet.
Funktionen ska returnera antal dagar i en månad, så den ska ha typen 'int'. Det är det kompilatorn klagar på.
När du har fixat det kommer det fler felmeddelanden, för det man ska göra för att returnera ett värde från en funktion är 'return' med det värdet.
Skrev om den lite utefter jag tolkade era svar:
Nu får jag massvis med felmeddelanden. Gjorde jag ett så grovt fel med detta?
EDIT: Jag ändrade nu i koden, rad 13: "return daysPerMonth;".
EDIT #2: Metodens namn är ändrad från "dayssPerMonth" till "daysPerMonth".
Plugghingsten skrev:Skrev om den lite utefter jag tolkade era svar:
Nu får jag massvis med felmeddelanden. Gjorde jag ett så grovt fel med detta?
EDIT: Jag ändrade nu i koden, rad 13: "return daysPerMonth;".
EDIT #2: Metodens namn är ändrad från "dayssPerMonth" till "daysPerMonth".
Vad blir det för fel då?
Jag förstår inte heller vad som menas med (t.ex.) "__tester__.java:8:" som står allra överst.
Du har deklarerat en variabel som heter daysperMonth men använder en odeklarerad variabel som heter daysPerMonth.
Men den variabeln behövs inte alls.
Du kan direkt skriva return 28, return 30 eller return 31 i koden.
Så här?
Jag misstänker att jag uppfattar dig fel då jag får följande felmeddelande:
Listan går ända ner till 12, det är början som finns med på senaste bilden.
Du deklarerar metoden
public static int daysPerMonth()
utan parametrar, men anropar sedan metoden med ett heltal:
System.out.println(daysPerMonth(1))
----------------------
Ett annat problem (som antagligen inte kompilatorn fångar) är att du i metoden daysPerMonth använder variabeln monthNbr utan att ha satt den.
"__tester__.java:8:" anger filens namn, och raden där felet upptäcktes. Din fil heter förmodligen inte __tester__.java, men jag antar att du skickar in din kod till nån testsida, och att det är den som sparar koden tillfälligt på en fil med det namnet.
Edit: Som Yngve skriver tar din metod inga argument, men det stod i uppgiften att den ska ta argumentet monthNbr av typen int. Du har definierat en lokal variabel med det namnet, men det är inte samma sak.
Jag fick godkänt för versionen nedan.
Är det så här ni vile se det som?
@Laguna: Men om vi tar och kikar på felmeddelandet som står allra först
"__tester__.java:8: error: cannot find symbol
daysPerMonth = 28;
^
symbol: variable daysPerMonth
location: class __tester__"
så tolkar jag det då som om vi finner detta fel på rad 8, inte sant? Läser vi i koden står där att det är på rad 6.
En övrig fråga om skriva kod. Den längsta raden här i koden är på rad 8. Om den skulle vara längre, hur får man den till nästa rad så att man slipper scrolla åt sidan? Förstår ni min fråga?
Det där med radnumren är ju irriterande. Antagligen har de lagt till nånting före din kod innan de kompilerar. Normalt pekar kompilatorn ut rätt rad.
Bryta rader kan du göra lite var du vill. Där det får finnas ett blanktecken får det finnas en radbrytning.
Hmm, hade för mig att det inte godkändes. Slarv av mig antar jag. Tack för hjälpen med denna uppgift!