BlueJ Methode unverändert lassen?

... komplette Frage anzeigen

4 Antworten

Wenn du uns deinen Code zeigen könntest wäre das deutlich leichter zu beantworten.

Irgendwo musst du mit einer if-Abfrage testen, ob genug Geld vorhanden ist. Fallst true, kannst du tanken, falls false eben nicht.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von RebelOfBerlin
24.08.2016, 18:55

public class Auto
{
private int kmStand;
private double tankvolumen;
private double verbrauch;
private double tankinhalt;
private double kontostand;

public Auto()
{
kmStand = 0;
tankvolumen = 50;
verbrauch = 0.065;
tankinhalt = 0;
kontostand = 0;
}

public void tanken(int liter)
{
kontostand = kontostand - (liter * 1.30);
tankinhalt = tankinhalt + liter;

if(tankinhalt > tankvolumen)
{
tankinhalt = tankvolumen;

System.out.println("So viel koennen Sie nicht tanken. Maximale Menge wurde getankt.");
}
if(kontostand - (liter * 1.30) <= 0)
{
System.out.println("Sie haben nicht genug Geld, um diese Menge zu tanken!");
}
}

public void einzahlen(int Euro)
{
kontostand = kontostand + Euro;
}

public void fahren(int km)
{
// Computer sagt nein.
kmStand = km + kmStand;
tankinhalt = tankinhalt - (km * verbrauch);
}

public void anzeigen()
{
System.out.println("Sie sind nun " + kmStand + " Kilometer gefahren und haben noch " + tankinhalt + " Liter im Tank.");

if(tankinhalt >= 0.1 && tankinhalt < 10)
{
System.out.println("Ihre Tankfüllung von " + tankinhalt + " Litern wird nicht mehr lang ausreichen. Sie sollten wohl besser tanken.");
}
if(tankinhalt <= 0)
{
System.out.println("Das heißt: Ihr Wagen ist mitten im Nichts abgesoffen. Haha.");
}
if(kontostand <= 0)
{
System.out.println("Sie sind komplett pleite.");
}
if(kontostand >= 0.1 && kontostand < 20)
{
System.out.println("Auf Ihrem Konto sind nur noch " + kontostand + " Euro. Zahlen Sie demnächst wieder etwas ein!");
}
System.out.println("Ihr Kontostand liegt bei " + kontostand + " Euro.");
}
}

Ich hoffe, das hilft nun irgendwie weiter ^^

0

Ich denke, am einfachsten wäre es vielleicht so:

class Auto{
public double kontostand;

// noch einige andere Sachen...

public void Tanken(double Liter)
{
if(kontostand < 0 || (kontostand - liter * 1.3) < 0)
{
system.out.println("Sie haben nicht genügend Geld zum tanken!");
// An dieser Stelle die Methode einfach verlassen.
// Ein Return ohne Wert springt aus der aktuellen Methode,
// unabhängig vom Return-Value.
return;
}
// Das else sparen wir uns hier, wegen des returns im if.
}
}

Viele Programmierer und jeder machts anders ;-)

Antwort bewerten Vielen Dank für Deine Bewertung

Du musst das

kontostand = kontostand - (liter * 1.30); 
tankinhalt = tankinhalt + liter; 

mit in die IFs rein machen, die du ja schon richtig benutzt ;)

Antwort bewerten Vielen Dank für Deine Bewertung

Erstelle eine if.clause die das Tanken nur erlaubt, falls man Geld hat also z.B. if(geld>0)

...

}

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Givemybest
24.08.2016, 19:47

Achso das Problem liegt hier : 

if(kontostand <= 0) 

System.out.println("Sie sind komplett pleite."); 

Du musst hier das Tanken verhindern

0
Kommentar von Givemybest
27.08.2016, 01:25

Bitte :)

0

Was möchtest Du wissen?