Muskampen 2025 är igång! Varje dag 19:00

[Java]Problem med en simpel metod

Permalänk
Medlem

[Java]Problem med en simpel metod

Försöker skriva en 'average' metod som ska acceptera 2 eller 3 integers och retunera medelvärdet på talen. Vet dock inte hur jag ska kunna göra den tredje integern "valfri" att använda.

Försökte göra såhär vilket inte funkade alls:

//method accepts 2 or 3 integers and return their average

public int average(int in1, int in2, int in3=0)
{
if (in3 > 0){
return (in1 + in2 + in3) / 3;}

else{
return (in1 + in2) / 2;}
}

Några förslag?

Permalänk
Avstängd

kan man skapa två metoder som heter average?

average (int, int, int)
{...}

average (int, int)
{...}

Permalänk
Medlem

Funktionsöverlagring...

public int average(int in1, int in2) { this.average(in1,in2,0); } public int average(int in1, int in2, int in3) { return (in1+in2+in3)/3; }

EDIT:
To slow...

EDIT2: Fixade indenteringen..

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Zevon
Funktionsöverlagring...

public int average(int in1, int in2) { this.average(in1,in2,0); } public int average(int in1, int in2, int in3) { return (in1+in2+in3)/3; }

EDIT:
To slow...

Tack så mycket.. räckte med att jag såg rubriken så kom jag ihåg
söndagar är inte bästa dagen att använda huvudet

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av Zevon
Funktionsöverlagring...

public int average(int in1, int in2) { this.average(in1,in2,0); } public int average(int in1, int in2, int in3) { return (in1+in2+in3)/3; }

EDIT:
To slow...

EDIT2: Fixade indenteringen..

Nitpicking: detta kommer inte funka korrekt om det är 2 tal som skickas in.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av emilsson
Nitpicking: detta kommer inte funka korrekt om det är 2 tal som skickas in.

Jag skrev det såhär:

public int average(int in1, int in2)
{
return this.average(in1, in2, 0);

}

public int average(int in1, int in2, int in3)
{
if (in3 > 0){
return (in1 + in2 + in3) / 3;}

else{
return (in1 + in2) / 2;}
}

Funkar i båda fallen.

Permalänk
Citat:

Ursprungligen inskrivet av Neobeam
Jag skrev det såhär:

public int average(int in1, int in2)
{
return this.average(in1, in2, 0);

}

public int average(int in1, int in2, int in3)
{
if (in3 > 0){
return (in1 + in2 + in3) / 3;}

else{
return (in1 + in2) / 2;}
}

Funkar i båda fallen.

Varför inte använda en lista av integers?

Visa signatur

"Mies saa kaatua mutta ei karata." -- Adolf Ehrnrooth IR 7, Äyräpää 1944.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av emilsson
Nitpicking: detta kommer inte funka korrekt om det är 2 tal som skickas in.

Hmm, nä, missförstod nog lite ang. vad han ville ha gjort (om du nu inte bara påpekade den saknade "return" innan this.average())..

Antog först bara att hans lilla kodsnutt var något ihopslängt, eftersom hans dåvarande (samnt nuvarade) version inte stödjer att man kollar medelvärdet på ex. talen "5, 6, 0", utan att man bara då får medel av "5,6", och det verkade udda att stödja indatat "0,5,6" och "5,0,6" men inte "5,6,0"... Men det verkar ju vara som så att koden faktiskt representerade den algoritm han var ute efter.

Visa signatur

The difference between stupidity and genius - the latter has limits