BufferedReader Benzinverbrauch

c_sidi90

Top Contributor
Huhu ich komm einfach nicht drauf wo mein Fehler liegt. Zum einen gibt er nach der While Bedingung nicht alle System.outs auf den Bildschirm und er gibt mir jedes Mal ein Fehler zurück den ich einfach nicht nachvollziehen kann. Vielen Dank im Vorraus!

Java:
import java.io.*;

public class Benzinverbrauch {

	public static void main (String[] args) throws IOException {
		 
	
	
		//Variablen Deklaration und Initialisierung 
	
		String pruefungString = "";
		String kmString ="";
		String TankmengeString="";
		float km = 0.0f;
		float Tankmenge = 0.0f;
		float Verbrauch = 0.0f;
    
		//Erstellung eines InputStreamreaders und eines BufferedReaders zur Anwendereingabe
		InputStreamReader Wandler = new InputStreamReader(System.in);
		BufferedReader Eingabe = new BufferedReader (Wandler);
    
    
    		//Beginn des Sourcecodes 
    
    		System.out.println ("Berechnen Sie den  Benzinverbrauch auf 100 Km"); 
    
    	
    		//Abfrage für die Bedingung Ausführung
    		System.out.println ("Möchten Sie fortfahren? Tippen Sie: Ja oder Nein");
    		pruefungString = Eingabe.readLine();
    		
    		//Ende der Anfrahe für die Bedingung der Ausführung
    		while (pruefungString=="Ja")
    	
    		System.out.println ("Geben Sie die gefahrenen Km an");
    		kmString = Eingabe.readLine();
    		System.out.println ("Geben Sie die verbrauchten Liter an");
    		TankmengeString = Eingabe.readLine(); 
    		
    		
    		// Umwandlung von String zu Float
    		Tankmenge = Float.parseFloat(TankmengeString);
    		km = Float.parseFloat(kmString);
    	  
			
    		//Berechnung des Benzinverbrauchs
    		
            //Einfache berechnung des Benzinverbrauchs
            Verbrauch = Tankmenge/km*100.f;
            //Berechnung des Verbrauchs mit Aufrundung am Dezimalpunkt
            Verbrauch = Math.round(Verbrauch * 100.f) / 100.f;
    	 
            
            //Ausgabe des Benzinverbrauchs 
            System.out.println ("Ihr Verbrauch auf 100 Km beträgt "+ Verbrauch+ " Liter");
    		
    		
    		
    		//Ende Source
 
Zuletzt bearbeitet von einem Moderator:
jedes Mal ein Fehler zurück den ich einfach nicht nachvollziehen
wir schon!!! Poste doch deinen Fehler!

Java:
 while (pruefungString=="Ja")
Strings vergleicht man mit equals
Java:
 while ("Ja".equals(pruefungString))
 
Okay danke, kannst du mir auch sagen wie ich dann die Schleife beende nach einem durchlauf nachdem Ja eingetippt wurde? Bei mir wiederholt sich der System.out nun dauernd.
 
kurz genauer angesehen

Java:
//Ende der Anfrahe für die Bedingung der Ausführung
            while ("Ja".equals(pruefungString)){ //<<<< Klammer auf!!
        ..hier passt alles              

            //nochmal fragen ob er weitermachen will, sonst ist ja pruefungString  immer Ja
               System.out.println ("Möchten Sie fortfahren? Tippen Sie: Ja oder Nein");
               pruefungString = Eingabe.readLine();
            }//<<< unten wieder zu

ansonsten stimmts
 
das blick ich jetzt irgendwie nicht, du hast ja die while schleife jetzt über die eigentliche Frage ob fortgefahren werden soll.
Java:
//Ende der Anfrahe für die Bedingung der Ausführung
            while ("Ja".equals(pruefungString)){ //<<<< Klammer auf!!
        ..hier passt alles              
 
            //nochmal fragen ob er weitermachen will, sonst ist ja pruefungString  immer Ja
               System.out.println ("Möchten Sie fortfahren? Tippen Sie: Ja oder Nein");
               pruefungString = Eingabe.readLine();
            }//<<< unten wieder zu
 
Na wenn "Ja" eingegeben wurde, wird nicht abgebrochen, sobald "Nein" z.B eingegeben wird geht er nicht mehr in die Schleife rein?
Wo liegt denn da das Problem?
Java:
while ( "Ja".equals(pruefungString) ) // Bei Ja geh rein, bei Nein geh nicht rein
{

// Mach irgendwas
}

// Nein wurde eingegeben!
equals gibt ein boolean zurück!
 
Ich würde das Ganze vielleicht noch zu
Code:
while ( "ja".equals(pruefungString.toLowerCase()) )
ändern. So ist es egal, ob der Benutzer "Ja" "JA" oder "ja" eingibt.
 
das blick ich jetzt irgendwie nicht, du hast ja die while schleife jetzt über die eigentliche Frage ob fortgefahren werden soll.
nochmal ganz

Java:
import java.io.*;

public class Benzinverbrauch {

   public static void main(String[] args) throws IOException {

      // Variablen Deklaration und Initialisierung

      String pruefungString = "";
      String kmString = "";
      String TankmengeString = "";
      float km = 0.0f;
      float Tankmenge = 0.0f;
      float Verbrauch = 0.0f;

      // Erstellung eines InputStreamreaders und eines BufferedReaders zur
      // Anwendereingabe
      InputStreamReader Wandler = new InputStreamReader(System.in);
      BufferedReader Eingabe = new BufferedReader(Wandler);

      // Beginn des Sourcecodes

      System.out.println("Berechnen Sie den  Benzinverbrauch auf 100 Km");

      // Abfrage für die Bedingung Ausführung
      System.out.println("Möchten Sie fortfahren? Tippen Sie: Ja oder Nein");
      pruefungString = Eingabe.readLine();

      // Ende der Anfrahe für die Bedingung der Ausführung
      while ("Ja".equals(pruefungString)) {

         System.out.println("Geben Sie die gefahrenen Km an");
         kmString = Eingabe.readLine();
         System.out.println("Geben Sie die verbrauchten Liter an");
         TankmengeString = Eingabe.readLine();

         // Umwandlung von String zu Float
         Tankmenge = Float.parseFloat(TankmengeString);
         km = Float.parseFloat(kmString);

         // Berechnung des Benzinverbrauchs

         // Einfache berechnung des Benzinverbrauchs
         Verbrauch = Tankmenge / km * 100.f;
         // Berechnung des Verbrauchs mit Aufrundung am Dezimalpunkt
         Verbrauch = Math.round(Verbrauch * 100.f) / 100.f;

         // Ausgabe des Benzinverbrauchs
         System.out.println("Ihr Verbrauch auf 100 Km beträgt " + Verbrauch + " Liter");

         System.out.println("Möchten Sie fortfahren? Tippen Sie: Ja oder Nein");
         pruefungString = Eingabe.readLine();
      }
   }
}
// Ende Source
klappt
 

Zurück
Oben