# Methode in if-Anweisung einbauen



## RowdyN (3. Nov 2015)

Hallo an Alle,
wir machen aktuell die if-Anweisung und bei der 4. Aufgabe komme ich nicht so recht weiter.

Es soll wie häufig der Zoll errechnet werden. Als Angaben gibt es:
Bier hat meist einen Alkoholgehalt 4,5%
<0.3L Kein Zoll
<2L 0.5€/Pro Liter
<5L 0.4€/Pro Liter
>=L 0.35€/Pro Liter

Mein Versuch sieht im Ansatz so aus:


```
public class Zollrechner
{
  public double rechneAlkoholmenge(double biermenge)
  {
  return 100/biermenge*4.5;
  }
  public double gibZollbetrag(double biermenge)
  {
  if (rechneAlkoholmenge()<0.3)
  return 0;
```

Darauf bekomme ich die Rückmeldung, dass ich die Methode *rechneAlkoholmenge() *so nicht verwenden darf...

Weis einer was ich machen kann, damit ich das Ergebnis der Methode rechneAlkoholmenge() so verwenden kann?

Lg und danke schonmal fürs durchlesen
RowdyN


----------



## Joose (3. Nov 2015)

Wie lautet denn die Fehlermeldung genau? (1:1 kopieren ist immer am besten)
Deine Methode erwartet einen Parameter, welchen du nicht übergibst. Daher ist der Aufruf so falsch.


----------



## RowdyN (3. Nov 2015)

Die Fehlermeldung lautet:

method rechneAlkoholmenge in class Zollrechner cannot be applied to given types;
required:double; found: no argument; reason: actual and fromal argument lists differ in lenght


----------



## Joose (3. Nov 2015)

Passt  wie oben schon geschrieben hast du die Methode mit Parameter definiert, aber gibst beim Aufruf der Methode keine Parameter mit.


----------



## VfL_Freak (3. Nov 2015)

Moin,

na es steht doch da:
die Methode erwartet als Parameter eine double-Wert, Du rufst sie aber ohne Argument auf !

Gruß Klaus

_*Mist - zu langsam*_


----------



## RowdyN (3. Nov 2015)

Also muss ich nur noch einen Argument hinzufügen und dann kann ich die Aufgabe so lösen?

```
public double gibZollbetrag(double biermenge)
    {
        if (rechneAlkoholmenge()<0.3)
            return 0;
        else if (rechneAlkoholmenge()<2)
            return rechneAlkoholmenge()*0.5;
        else if (rechneAlkoholmenge()<5)
            return rechneAlkoholmenge()*0.4;
        else  
            return rechneAlkoholmenge()*0.35           
    }
```

Und wenn ja... Welches Argument muss ich dann noch hinzufügen und wo?


----------



## VfL_Freak (3. Nov 2015)

schau doch in die Fehlermeldung:


RowdyN hat gesagt.:


> method rechneAlkoholmenge in class Zollrechner



Gruß Klaus


----------



## RowdyN (3. Nov 2015)

Sorry aber damit kann ich nicht viel anfangen. Habe gerade ein bissl rumprobiert, aber ich weiß leider nicht wie ich diese Anweisung geben soll.
Wenn ich das richtig verstehe muss ich etwas vor die Methode setzten. Ich habe es mit "in class Zollrechner" probiert. Klappt natürlich nicht...
Man benötigt wahrscheinlich ein Schlüsselwort, welches ich nicht kenne bzw. weiß.


----------



## VfL_Freak (3. Nov 2015)

Nein 

die Methode _*rechneAlkoholmenge*_ erwartet als Parameter die Biermenge als double-Wert!
Du rufst sie aber ohne Argument auf!!

Du musst also jedesmal Deinen Parameter durchreichen

```
public double gibZollbetrag(double biermenge)
    {
        if (rechneAlkoholmenge(biermenge)<0.3)
            return 0;
        else if (rechneAlkoholmenge(biermenge)<2)
            return rechneAlkoholmenge(biermenge)*0.5;
        else if (rechneAlkoholmenge(biermenge)<5)
            return rechneAlkoholmenge(biermenge)*0.4;
        else
            return rechneAlkoholmenge(biermenge)*0.35        
    }
```

Gleiches würde ggf. auch für _*gibZollbetrag*_ gelten  

Gruß Klaus


----------



## RowdyN (3. Nov 2015)

Achso... Dankeschön.
Manchmal ist die Lösung so einfach, dass man sie nicht sieht 

PS: Vielleicht wirds ja diesmal was mit dem Aufstieg


----------

