registrierkasse bzw taschenrechner mit while schleife

Status
Nicht offen für weitere Antworten.

newbee

Mitglied
hallo ich hab mal wieder ein problem, soll ein proggi schreiben mit ner while schleife aber hab keine ahnung wie while schleifen funktionieren.
es soll wie eine regestrierkasse funktionieren. der nuter soll icmmer im wechsel eine natürliche zahl und ein zeichen(+oder=) eingeben. das proggie soll nach jedem zeich die zwischensumme aller bisherigen zahlen aus. wenn = eingegeben wird bricht das programm mit endergebnis ab. jede falsch eingabe soll verhinder werden. allso keine natürlichen zahlen oder zeichen die nicht zulässig sind.falls das passier soll so lange eine eingabe wiederholt werden bis sie zulässig ist.
hae mal was mit key events gelesen aber sowas hatten wir noch gar nicht in der vorlesung. der hat uns nichtmal die schleifen richtig erklärt und verlangt sowas, habe also keien ahnung und das java buch hilft mir auch nicht. wäre echt toll falls jemand ein tipp hat
danke...
 

Jiriki

Mitglied
double summe;
Code:
while (true)
{

//eingaben machen....
String eingabeString;
String eingabeZahl;

//eingaben mit streams und auf zulässige zeichen überprüfen z.b.:
if(eingabeString == 'a') //wenn eingabe = 'a'
continue; //dann zum schleifen anfang springen und nochmal von vorn...

if(eingabeString == '=') //wenn eingabe = '='
break; //dann schleife beenden und unten weitermachen

//ansonsten summe aufaddieren
summe += eingabeZahl;

}

return summe;

hab das mal grob umrissen mit der while schleife
hoffe es hilft
 

newbee

Mitglied
hallo danke für den tip aber mir fehlt noch eine menge und ich bekomme mit meinen mitteln das programm nicht fertig bzw so wie es sein muss
Code:
import java.io.*; 
public class Registrierkasse{ 
    public static void main(String[] args) 
    throws IOException 
    { int n; 
     BufferedReader din = new BufferedReader(new InputStreamReader(System.in));
     while (true) 
{ String eingabeString; 
  String eingabeZahl; 
  System.out.print("Bitte Zahl eingeben");
  System.out.print("Bitte Zeichen eingeben");
if(eingabeString == 'a') 
continue;  

if(eingabeString == '=') 
break; 

summe += eingabeZahl; 

} 

return summe;
    }
}
soweit habe ich es probiert aber ich weiss nicht richtig wie ich das mit deer eingabe und ausgabe hinbekomme
danke im vorraus
 
G

Guest

Gast
Zu deinem Quellcode:
Code:
import java.io.*; 

public class Registrierkasse
{ 
	public static void main(String[] args) throws IOException 
	{ 
  	// Wozu int n? Wird doch gar nicht weiter von dir benutzt
  	int n; 
  	
  	// int summe; hast du vergessen dem Compiler bekannt zu machen
  	
  	// o.k.
  	BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); 
   	
   	// o.k.
   	while (true) 
		{ 	
			String eingabeString; 
  		String eingabeZahl; 
  		System.out.print("Bitte Zahl eingeben");
  		// Hier müßte die Eingabe eingelesen werden: din.readLine() 
  		System.out.print("Bitte Zeichen eingeben"); 
			// Hier müßte auch die Eingabe eingelesen werden: din.readLine()
			
			// Hier vergleichst du eine 'String' mit einem 'char', das geht nicht!
			// if(eingabeString == "a") wäre richtig
			if(eingabeString == 'a') 
			continue;  
			
			// Selber Fehler, String wird mit char verglichen
			if(eingabeString == '=') 
			break; 

			// summe ist gar nicht definiert (siehe oben)
			summe += eingabeZahl; 

		}		 
		// return gibt etwas zurück. Main-Methode gibt nie etwas zurück (void)
		// Wenn du etwas auf der Konsole ausgeben willst, dann mit System.out.println("Hallo");
		return summe; 
	} 
}

Ich hab dir mal eine mögliche Lösung geschrieben... mit schön vielen while-Schleifen:

import java.io.*;

public class Registerkasse
{  
	public static void main(String[] args) throws IOException 
  { 
  	String eingabeString = ""; 
		boolean nichtKorrekteZahl = true;
		int zahl=0;
		int sum=0;
  	BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); 
   	
   	while (true) 
		{ 
			while(nichtKorrekteZahl)
			{
				System.out.print("Bitte Zahl eingeben: ");
				eingabeString=din.readLine();
				int i=0;
				while(i<eingabeString.length())
				{
					if(eingabeString.charAt(i)<'0' || eingabeString.charAt(i)>'9')
					{
						nichtKorrekteZahl=true;
						break;
					}
					else
					{
						nichtKorrekteZahl = false;
						i++;
					}
				}
			}
			zahl = Integer.parseInt(eingabeString);
			nichtKorrekteZahl = true;
			sum += zahl;
			
			while(!(eingabeString.equals("=") || eingabeString.equals("+")))
			{
				System.out.print("Bitte Zeichen eingeben: ");
				eingabeString=din.readLine();
			}
			if(eingabeString.equals("+"))
				System.out.println("Zwischenergebnis: " + sum);
			else
			{
				System.out.println("Endergebnis: " + sum);
				break;
			}
		}	  
	}
}
Grüsse
Andres
 

Jiriki

Mitglied
netter code andreas
sieht gut aus bis auf die einrückungen :p

und ich hab gleich zweimal gleichen fehler gemacht :oops:

if(eingabeString == '=') //wenn eingabe = '='

muss natürlich

if(eingabeString == "=")

heissen....
 
B

bthalion

Gast
echt supi von euch. danke habe aber noch eine kleine frage wie ich das programm besser verständlich bekomme, für jemanden, der sich den quellcode anschaut. kann ich diesen breack befehl irgentwie umgehen und die anweisung für das beenden der schleife mit in die while anweisung bringen? also wenn eine nicht korekkte zahl eingegeben weird. sorry wenn ich immer so wirres zeug von euch verlange
 
G

Guest

Gast
Du hast Recht. Break und continue ist eigentlich murks. Es sollte immer nur einen Eingang und einen Ausgange aus einer Schleife geben. Darum sind auch goto-Befehle Schrott.
Ich hab das nur mal so schnell hingeschrieben, ohne auf diese Konventionen zu achten.

Hier ist die Verbesserung:
Code:
import java.io.*; 

public class Registerkasse
{ 
public static void main(String[] args) throws IOException 
{ 
		String eingabeString = ""; 
		boolean nichtKorrekteZahl = true; 
		boolean machWeiter = true;
		int zahl=0; 
		int sum=0; 
		BufferedReader din = new BufferedReader(new InputStreamReader(System.in)); 
	
		while(machWeiter) 
		{	 
			while(nichtKorrekteZahl) 
			{ 
				System.out.print("Bitte Zahl eingeben: "); 	
				eingabeString=din.readLine(); 
				int i=0; 
				while(i<eingabeString.length() && nichtKorrekteZahl) 
				{ 
					if(eingabeString.charAt(i)<'0' || eingabeString.charAt(i)>'9') 
					{ 
						nichtKorrekteZahl=true; 
					} 
					else if(i==eingabeString.length()-1)
					{ 	
						nichtKorrekteZahl = false;  
					} 
					i++;
				} 
			} 
			zahl = Integer.parseInt(eingabeString); 
			nichtKorrekteZahl = true; 
			sum += zahl; 
	
			while(!(eingabeString.equals("=") || eingabeString.equals("+"))) 
			{ 
				System.out.print("Bitte Zeichen eingeben: "); 
				eingabeString=din.readLine(); 
			} 
			if(eingabeString.equals("+")) 
				System.out.println("Zwischenergebnis: " + sum); 
			else 
			{ 
				System.out.println("Endergebnis: " + sum); 
					machWeiter = false; 
			} 
		} 
	} 
}

Für das Einrücken kann ich nichts. Das wird automatisch gemacht.
Grüsse
Andres
 

Nobody

Top Contributor
man kann wunderbar einrücken und hab selbiges bei allen fehlenden eingetragen:
Code:
das um euren quelltext packen und er wird so dargestellt, dabei aber den bbcode anlassen sonst verarbeitet er es nicht
 
G

Guest

Gast
Aha, hab ich bisher verpeilt, obwohl es doch so schöne Buttons dafür gibt.
Danke, dass du meine bisherigen Postings angepasst hast.

Grüsse
Andres
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
R Operatoren Rechenoperation verwenden für Taschenrechner. Java Basics - Anfänger-Themen 32
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
R Einfacher Taschenrechner mit Eclipse Java Basics - Anfänger-Themen 3
M Einfacher Taschenrechner Java Basics - Anfänger-Themen 2
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
Y Taschenrechner programmieren Java Basics - Anfänger-Themen 3
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
C Potenzberechnung über switch case. Taschenrechner mit Eingabe über einen grafischen Dialog Java Basics - Anfänger-Themen 22
E JavaFX Taschenrechner Eingabe im Textfield beschränken Java Basics - Anfänger-Themen 2
E Taschenrechner GUI Problem mit Fehlerhandling Java Basics - Anfänger-Themen 6
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
W Taschenrechner mit Switch case Java Basics - Anfänger-Themen 4
W Taschenrechner Java Basics - Anfänger-Themen 11
A Taschenrechner mit Gui erstellen Java Basics - Anfänger-Themen 9
2 Taschenrechner mit GUI Problem bei der Berechnung Java Basics - Anfänger-Themen 8
P Taschenrechner mit unendlich vielen Eingabemöglichkeiten Java Basics - Anfänger-Themen 1
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
S Taschenrechner Java Basics - Anfänger-Themen 13
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
S Compiler-Fehler Basic- Taschenrechner/ Fehler Java Basics - Anfänger-Themen 8
S Basic- Taschenrechner? Java Basics - Anfänger-Themen 7
P Hilfe bei Java Taschenrechner Java Basics - Anfänger-Themen 25
F Erste Schritte Frage zu simplem Taschenrechner(switch) Java Basics - Anfänger-Themen 16
L Mein Taschenrechner lässt sich plötzlich nicht mehr öffnen Java Basics - Anfänger-Themen 5
S Taschenrechner hilfe! Java Basics - Anfänger-Themen 17
H Java Taschenrechner Java Basics - Anfänger-Themen 4
R Variablen Taschenrechner mit Komfortfunktionen Java Basics - Anfänger-Themen 2
J RPN Taschenrechner - keine Lösung!! Java Basics - Anfänger-Themen 84
M Java Taschenrechner (if-else) Java Basics - Anfänger-Themen 11
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Q simpler Taschenrechner Java Basics - Anfänger-Themen 34
R Taschenrechner NullPointerException Java Basics - Anfänger-Themen 1
R Variablen Weitergehenderr Taschenrechner Java Basics - Anfänger-Themen 4
F Taschenrechner "Error loading class..." Java Basics - Anfänger-Themen 5
M Java Taschenrechner Programmieren Java Basics - Anfänger-Themen 12
P Erste Schritte Taschenrechner mit if-else Anweisung Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
A Taschenrechner programmieren Java Basics - Anfänger-Themen 21
Z Java Taschenrechner Java Basics - Anfänger-Themen 6
J Kleiner Taschenrechner! Anfänger braucht Hilfe :( Java Basics - Anfänger-Themen 2
C Taschenrechner in Java Java Basics - Anfänger-Themen 6
J Erste Schritte Java CMD Taschenrechner mit Parametern! Java Basics - Anfänger-Themen 16
J Taschenrechner: Probleme Java Basics - Anfänger-Themen 5
E Taschenrechner problem! Ich komme nicht voran Java Basics - Anfänger-Themen 18
R Erste Schritte Taschenrechner mit Schleife Java Basics - Anfänger-Themen 24
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
Z Taschenrechner - Additions/Substraktions/Multiplikations/Divionsketten! Java Basics - Anfänger-Themen 4
D Taschenrechner Frage Java Basics - Anfänger-Themen 12
Z Sehr simpler Taschenrechner - Hilfe! Java Basics - Anfänger-Themen 10
Z Taschenrechner - Wie addiere,multipliziere und subtrahiere ich? Java Basics - Anfänger-Themen 6
D kleiner Taschenrechner mit switch fehlerhaft Java Basics - Anfänger-Themen 1
K Taschenrechner im GUI Java Basics - Anfänger-Themen 2
P Taschenrechner, operatoren Java Basics - Anfänger-Themen 4
D Simpler Taschenrechner Java Basics - Anfänger-Themen 6
A Anfänger Taschenrechner Frage Java Basics - Anfänger-Themen 14
R Erste Schritte Taschenrechner - Punkt-vor-Strich Rechnung Java Basics - Anfänger-Themen 1
S Operatoren Taschenrechner Ergebnis ausgeben Java Basics - Anfänger-Themen 7
A Taschenrechner zeigt Error Java Basics - Anfänger-Themen 7
J Taschenrechner Funktion Java Basics - Anfänger-Themen 18
M Taschenrechner fertigstellung Java Basics - Anfänger-Themen 1
N Methoden Taschenrechner Java Basics - Anfänger-Themen 2
F z = input.nextChar(); PROBLEM Taschenrechner Java Basics - Anfänger-Themen 7
J Scanner Taschenrechner? Java Basics - Anfänger-Themen 7
J Variablen Rechenzeichen und Zahlen verknüpfen für einen Taschenrechner Java Basics - Anfänger-Themen 17
B Klassen Java Taschenrechner mit Klassen und Methoden Java Basics - Anfänger-Themen 12
B Erste Schritte Brauche Hilfe bei einem Java-Taschenrechner Java Basics - Anfänger-Themen 11
R Methoden Taschenrechner Java Basics - Anfänger-Themen 4
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
I Taschenrechner - Methoden implementieren Java Basics - Anfänger-Themen 5
I Java Starthilfe (Taschenrechner) Java Basics - Anfänger-Themen 7
J Taschenrechner Problemchen Java Basics - Anfänger-Themen 3
D Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 11
K taschenrechner - Fehler beim Kürzen eines Bruches finden Java Basics - Anfänger-Themen 20
J Taschenrechner Punkt vor Strich Java Basics - Anfänger-Themen 9
A Taschenrechner programmieren Java Basics - Anfänger-Themen 5
M Ausklappbares Fenster bei grafischem Taschenrechner Java Basics - Anfänger-Themen 2
M Dividieren bei Grafischem Taschenrechner klappt nicht Java Basics - Anfänger-Themen 2
N Taschenrechner mit Unterprogra Java Basics - Anfänger-Themen 6
C Taschenrechner Java Basics - Anfänger-Themen 12
Z Taschenrechner programmieren Java Basics - Anfänger-Themen 5
E Erste Schritte Taschenrechner Java Basics - Anfänger-Themen 8
K Taschenrechner Java Basics - Anfänger-Themen 25
J Textfeld für Taschenrechner Java Basics - Anfänger-Themen 3
D Taschenrechner Java Basics - Anfänger-Themen 28
A Taschenrechner-GUI mit BorderLayout? Java Basics - Anfänger-Themen 6
W [PROJEKT] Simpler grafischer Taschenrechner Java Basics - Anfänger-Themen 8
M Taschenrechner mit JApplet Java Basics - Anfänger-Themen 26
J Grafischen Taschenrechner programmieren - Frage dazu Java Basics - Anfänger-Themen 12
W Taschenrechner Java Basics - Anfänger-Themen 2
T Tasten vom Taschenrechner? Java Basics - Anfänger-Themen 3
S Datentypen Taschenrechner Java Basics - Anfänger-Themen 13
J Taschenrechner Java Basics - Anfänger-Themen 5
J Taschenrechner Java Basics - Anfänger-Themen 9
M While bei einem Taschenrechner Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben