Hausaufgaben-Hilfe Java

Hallo leute,
ich bin ganz neu in Java und brauche für meine Hausaufgabe hilfe :)
hatte erst nur 5 std. java unterricht und bin deswegen unerfahren.

erstmal die Aufgabe :

•erstelle eine do-while-Schleife (RefundDo) Programm für die Leergut-Rückgabe


Hier mein Java Programm :

Java:
public class RefundDo {

  public static void main(String[] args) {
    
	int flasche = 20 ;
    int leereKiste = 500 ;               // Pfand umgerechnet in Cent, 5€=500Cent
	int volleKiste = 500+(9*flasche) ;  // 500Cent + Pfand von 9 Flaschen
	
	{
	  Out.println("Leergutannahme:");
	  Out.println("   1    leere Kiste (5 Euro)") ;
	  Out.println("   2    volle Kiste (5 Euro zzgl. 9 mal Flaschenpfand)") ;
	  Out.println("   3    Flasche (20 Cent)") ;
	  Out.println("   0    Eingabe beenden") ;
	
	}
	
	Out.print("Naechste Eingabe:");
	int eingabe = In.readInt();
	
	int pfand = 0;
	
	do {
	   pfand=0 ;
	   
	   if(eingabe==1) pfand = pfand+leereKiste ;
	   
	   if(eingabe==2) pfand = pfand+volleKiste ;
	   
	   if(eingabe==3) pfand = pfand+flasche ;
	   
	}
	while( eingabe == 0);
	
	int preis  = pfand/100 ;
	int preis2 = pfand % 100 ;
	
	
	Out.print("Sie erhalten " +preis+ " Euro und "+preis2+ " Cent Pfand");
	
	
	}

}


hier habe ich die do-Anweisung wahrscheinlich falsch erstellt. denn es muss doch eigentlich solange
abfragen bis ich bei der eingabe 0 eingebe. aber bei mir rechnet er es sofort aus.
ich konnte mein fehler leider nicht finden ... :(

schonmal danke ! :)
 

Camill

Bekanntes Mitglied
Hallo leute,
hier habe ich die do-Anweisung wahrscheinlich falsch erstellt. denn es muss doch eigentlich solange
abfragen bis ich bei der eingabe 0 eingebe.

Vollkommen richtig ;)
Das while müsste so aussehen
Code:
while( eingabe != 0);
- somit wird die Schleife solange durchlaufen wie die Eingabe nicht 0 entspricht. Außerdem muss das Einlesen der Eingabe ebenfalls in der Schleife abgearbeitet werden.
 
Danke Camill,

Das while müsste so aussehen while( eingabe != 0);
Stimmt, dass war jetzt bisschen dumm von mir :)


also ich hab das jetzt so gemacht :

Java:
int pfand = 0;
	
	do {
	   pfand=0 ;
	   
	   Out.print("Naechste Eingabe:");
	   int eingabe = In.readInt();
	   
	   
	   if(eingabe==1) pfand = pfand+leereKiste ;
	   if(eingabe==2) pfand = pfand+volleKiste ;
	   if(eingabe==3) pfand = pfand+flasche ;
	   
	}
	while( eingabe != 0);


jetzt bekomme ich aber die folgende fehlermeldung :

Zeile 15 : cannot find symbol


was habe ich wieder falsch gemacht ? :)
 
Zuletzt bearbeitet:
G

Gast2

Gast
Deine Variable eingabe ist nur innerhalb der Schleife gültig, das musst du außerhalb deklarieren.
 
Java:
       int eingabe = In.readInt() ;
	int pfand = 0;
	
	
	do {
	   pfand=0 ;
	   
	   Out.print("Naechste Eingabe:");
	   int eingabe = In.readInt();
	   
	   
	   if(eingabe==1) pfand = pfand+leereKiste ;
	   if(eingabe==2) pfand = pfand+volleKiste ;
	   if(eingabe==3) pfand = pfand+flasche ;
	   
	}
	while( eingabe != 0);


jetzt steht bei mir :

eingabe is already defined in main<String[]>
int eingabe = In.readInt<>;

...
 

Camill

Bekanntes Mitglied
Außerhalb der Schleife:
Code:
int eingabe;
Innerhalb der Schleife:
Code:
eingabe = In.readInt();

Die Fehlermeldung gibt an das die Variable 2mal deklariert wurde.
 
Leute erstmal DANKE ! :)

jetzt habe ich nur noch ein problem, bei mir kommt als ergebniss ( euro und cent ) nur 0 raus :)
es wird irgendwie nicht zusammen gerechnet.

Java:
public class RefundDo {

  public static void main(String[] args) {
    
	int flasche = 20 ;
    int leereKiste = 500 ;               // Pfand umgerechnet in Cent, 5€=500Cent
	int volleKiste = 500+(9*flasche) ;  // 500Cent + Pfand von 9 Flaschen
	
	{
	  Out.println("Leergutannahme:");
	  Out.println("   1    leere Kiste (5 Euro)") ;
	  Out.println("   2    volle Kiste (5 Euro zzgl. 9 mal Flaschenpfand)") ;
	  Out.println("   3    Flasche (20 Cent)") ;
	  Out.println("   0    Eingabe beenden") ;
	
	}
	
	Out.print("Naechste Eingabe:");
	int eingabe = In.readInt() ;
	int pfand ;
	
	
	do {
	    
	   Out.print("Naechste Eingabe:");
	   eingabe = In.readInt();
	   
	   pfand = 0 ;
	   
	   if(eingabe==1) pfand = pfand+leereKiste ;
	   if(eingabe==2) pfand = pfand+volleKiste ;
	   if(eingabe==3) pfand = pfand+flasche ;
	   
	}
	while( eingabe != 0);
	
	int preis  = pfand/100 ;
	int preis2 = pfand % 100 ;
	
	
	Out.print("Sie erhalten " +preis+ " Euro und "+preis2+ " Cent Pfand");
	
  }

}
 
G

Gast2

Gast
Java:
do {
       [...]
       pfand = 0 ;
       [...]       
    } while(eingabe != 0);
Vielleicht fällt dir ja was auf.

Nen genereller Hinweis: Wenn du dir irgendwas nicht genau erklären kannst dann benutze entweder den Debugger oder setze dir ein paar Sysouts rein.
 
hallo EikeB,

aber was muss ich denn pfand zuweisen ??


und mit debugger kenne ich mich nicht aus, wie oben geschrieben bin ich ganz neu in java :)
aber vielleicht könntest du es mir ja kurz erklären, falls es nicht so kompliziert ist :)

danke schonmal...
 
G

Gast2

Gast
Du setzt bei jedem Schleifendurchlauf Pfand wieder auf 0. Die Variable pfand musst du doch nur ganz am Anfang einmal auf 0 setzen, danach wird der Wert doch stetig erhöht.
Also VOR der Schleife einmal pfand mit 0 initialisieren und danach in der Schleife nur noch hochzählen.

aber vielleicht könntest du es mir ja erklären, falls es nicht so kompliziert ist
Dazu gibts genug Tutorials im Internet, bestimmt auch für deine IDE.
 
schau mal wenn ich jetzt z.b. zwei mal die 1 eingebe kommt bei mir nur 5 raus... also die eingaben nach der ersten
eingabe werden nicht mehr drauf gerechnet....


und wegen dem debugger werde ich mich morgen mal informieren ... ;)


danke!
 
G

Gast2

Gast
Du verarbeitest die erste Eingabe ja auch gar nicht :)
Die Eingabe vor der Schleife kann doch da raus, was soll die da? Du musst da lediglich die Variable deklarieren.
 
Endlich geht es !!! Yuhuuu ... :)

ich hätte nicht gedacht, dass java so schwer ist :)

aber es macht trotzdem SPAß ! :toll:

------

da ich neu im forum bin hätte ich mal eine frage und zwar sollte ich falls
ich bei anderen hausaufgaben fragen habe am besten ein neues thema öffnen oder
kann ich ruhig wieder hier reinschreiben ?


-----
 
G

Gast2

Gast
Soo schwer ist Java gar nicht ;) Man muss nur dran bleiben.

Erstell für zukünftige Fragen jeweils nen neues Thema. Da hast du bessere Chancen dass du Antworten bekommst.
 

Neue Themen


Oben