Die Ausgabe stimmt leider nicht

Henri

Bekanntes Mitglied
Hallo,
was mache ich falsch? Die Ausgabe stimmt leider nicht
Code:
public class Receipt{
  
        public static void main(String[] args){
      
          
       double wurst = 4.2;
       int anzWurst = 1;
       double brieftasche = 50.0;
       double summe = 0;
      
       // einzelne Preis
       //double wurst = 4.2;
       double kaese = 2.3;
       double brot = 2.2;
       double dvd = 12.0;
      
       // Anzahl der Waren
       //int anzWurst = 1;
       int anzKaese = 1;
       int anzBrot = 1;
       int anzDVD = 2;
  
       //Summe gekaufte Waren
        //double summe = 0;
        summe = summe + wurst*anzWurst;
        summe = summe + kaese*anzKaese;
        summe = summe + brot*anzBrot;
        summe = summe + dvd*anzDVD;
      
        //Inhalt der Brieftasche
      
        //double brieftasche = 50.0;
      
       if(summe > brieftasche){
           System.out.println("Sie haben nicht genung Geld in Ihrer brieftasche");
       } else {
          
              if(summe + wurst < brieftasche){
                  summe = summe + wurst;
                  anzWurst = anzWurst ;
              }
            
              if(summe + kaese < brieftasche){
                  summe = summe + kaese;
                  anzKaese = anzKaese;
              }
            
              if(summe + brot < brieftasche){
                  summe = summe + brot;
                  anzBrot = anzBrot;
              }
            
              if(summe + dvd < brieftasche){
                  summe = summe + dvd;
                  anzDVD = anzDVD;
              }
            
              System.out.println(String.format("%-9s %2d x %5.2f EUR", "Wurst", anzWurst, wurst));
               System.out.println(String.format("%30.2f EUR", anzWurst * wurst));

               System.out.println(String.format("%-9s %2d x %5.2f EUR", "Käse", anzKaese, kaese));
               System.out.println(String.format("%30.2f EUR", anzKaese * kaese));

               System.out.println(String.format("%-9s %2d x %5.2f EUR", "Brot", anzBrot, brot));
               System.out.println(String.format("%30.2f EUR", anzBrot * brot));

               System.out.println(String.format("%-9s %2d x %5.2f EUR", "DVD", anzDVD, dvd));
               System.out.println(String.format("%30.2f EUR", anzDVD * dvd));

               System.out.println("__________________________________");

               System.out.println(String.format("%-9s %20.2f EUR", "Gesamt", summe));
               System.out.println(String.format("%-9s %20.2f EUR", "Gegeben", brieftasche));
               System.out.println();
               System.out.println(String.format("%-9s %20.2f EUR", "Zurück", brieftasche - summe));
          }
          
     }
   }
Ausgabe
Code:
Wurst      1 x  4,20 EUR
                          4,20 EUR
Käse       1 x  2,30 EUR
                          2,30 EUR
Brot       1 x  2,20 EUR
                          2,20 EUR
DVD        2 x 12,00 EUR
                         24,00 EUR
__________________________________
Gesamt                   41,40 EUR
Gegeben                  50,00 EUR

Zurück                    8,60 EUR
 
Java:
if(summe + wurst < brieftasche){
    summe = summe + wurst;
    anzWurst = anzWurst ;
}

Was soll denn zB dieser Ausschnitt machen?
also wenn den Wert der summe + wurst klein als meine Brieftasche dann kann ich kaufen
dann macht die folgende operation summe = summe + wurst
dann schreibe ich anzWurst = anzWurst , das hätte mich sparen können,
leider hätte es nichts auf meinem Ergebnis geändert
 
also wenn den Wert der summe + wurst klein als meine Brieftasche dann kann ich kaufen
dann macht die folgende operation summe = summe + wurst
dann schreibe ich anzWurst = anzWurst , das hätte mich sparen können,
leider hätte es nichts auf meinem Ergebnis geändert
Beschreib doch mal in Worten und ganz unabhängig vom Code, was passieren soll 😉

Ich denke mal, wenn man genug Geld hat, soll eine Wurst mehr gekauft werden, was muss denn dafür alles passieren?
 
Beschreib doch mal in Worten und ganz unabhängig vom Code, was passieren soll 😉

Ich denke mal, wenn man genug Geld hat, soll eine Wurst mehr gekauft werden, was muss denn dafür alles passieren?
vielleicht verstehe ich leider nicht was du damit meinst , aber ich kaufe nicht nur eine wurst oder mehrere Wurste, sondern auch weiter sache kaufen
 
Man macht sich das Lösen von Problemen wesentlich einfacher, wenn man sie auf kleinere Probleme runter bricht.

Versuch doch erstmal nur mit Worten unabhängig vom Code zu beschreiben, was passieren soll, wenn man genug Geld für eine weitere Wurst hat
 
Code:
[...]
        summe = summe + wurst*anzWurst;
        summe = summe + kaese*anzKaese;
        summe = summe + brot*anzBrot;
        summe = summe + dvd*anzDVD;
[...]
ergibt 32,70
zu dieser Summe addierst Du in
Code:
       if(summe > brieftasche){
           System.out.println("Sie haben nicht genung Geld in Ihrer brieftasche");
       } else {
         
              if(summe + wurst < brieftasche){
                  summe = summe + wurst;
                  anzWurst = anzWurst ;
              }
           
              if(summe + kaese < brieftasche){
                  summe = summe + kaese;
                  anzKaese = anzKaese;
              }
           
              if(summe + brot < brieftasche){
                  summe = summe + brot;
                  anzBrot = anzBrot;
              }
           
              if(summe + dvd < brieftasche){
                  summe = summe + dvd;
                  anzDVD = anzDVD;
              }

nochmal 4,20 + 2,30 + 2,20 = 8,70, macht zusammen die ausgegebenen 41,40.
Die letzten 12,00 für die DVD werden nicht mehr addiert, weil das dann Deine
Brieftasche sprengen würde. ;-)
 
Code:
[...]
        summe = summe + wurst*anzWurst;
        summe = summe + kaese*anzKaese;
        summe = summe + brot*anzBrot;
        summe = summe + dvd*anzDVD;
[...]
ergibt 32,70
zu dieser Summe addierst Du in
Code:
       if(summe > brieftasche){
           System.out.println("Sie haben nicht genung Geld in Ihrer brieftasche");
       } else {
        
              if(summe + wurst < brieftasche){
                  summe = summe + wurst;
                  anzWurst = anzWurst ;
              }
          
              if(summe + kaese < brieftasche){
                  summe = summe + kaese;
                  anzKaese = anzKaese;
              }
          
              if(summe + brot < brieftasche){
                  summe = summe + brot;
                  anzBrot = anzBrot;
              }
          
              if(summe + dvd < brieftasche){
                  summe = summe + dvd;
                  anzDVD = anzDVD;
              }

nochmal 4,20 + 2,30 + 2,20 = 8,70, macht zusammen die ausgegebenen 41,40.
Die letzten 12,00 für die DVD werden nicht mehr addiert, weil das dann Deine
Brieftasche sprengen würde. ;-)
ohh man, vielen Dank es ist mir überhaupt nicht aufgefallen, vielen vielen Dank
 

Zurück
Oben