12 svar
620 visningar
Plugghingsten behöver inte mer hjälp
Plugghingsten 321
Postad: 23 feb 2020 16:34

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:

Yngve 40157 – Livehjälpare
Postad: 23 feb 2020 16:47 Redigerad: 23 feb 2020 16:55

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.

Laguna 30251
Postad: 23 feb 2020 16:50

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.

Plugghingsten 321
Postad: 23 feb 2020 17:05 Redigerad: 23 feb 2020 17:20

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".

Laguna 30251
Postad: 23 feb 2020 17:25
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å?

Plugghingsten 321
Postad: 23 feb 2020 17:31 Redigerad: 23 feb 2020 17:33

Jag förstår inte heller vad som menas med (t.ex.) "__tester__.java:8:" som står allra överst.

Yngve 40157 – Livehjälpare
Postad: 23 feb 2020 19:32 Redigerad: 23 feb 2020 19:33

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.

Plugghingsten 321
Postad: 23 feb 2020 19:59

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.

Yngve 40157 – Livehjälpare
Postad: 23 feb 2020 20:24 Redigerad: 23 feb 2020 21:13

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.

Laguna 30251
Postad: 23 feb 2020 20:48 Redigerad: 23 feb 2020 20:52

"__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.

Plugghingsten 321
Postad: 24 feb 2020 14:22 Redigerad: 24 feb 2020 14:23

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?

Laguna 30251
Postad: 24 feb 2020 18:05

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. 

Plugghingsten 321
Postad: 24 feb 2020 19:32

Hmm, hade för mig att det inte godkändes. Slarv av mig antar jag. Tack för hjälpen med denna uppgift!

Svara
Close