# variable Anzahl an Eingaben mit JOptionPane.showInputDialog()



## Katharina_17 (11. Dezember 2009)

Hallo zusammen! 

Für die Schule muss ich ein Programm schreiben, bei dem der Benutzer Zahlen eingibt, die das Programm dann addiert und ausgibt.

Nun ist es so, dass nach dem Start des Programms mit dem Befehl JOptionPane.showInputDialog() drei Eingabefenster angezeigt werden, in die der Benutzer die Zahlen eingibt. Anschließend soll das Programm fragen, ob man noch weitere Zahlen eingeben möchte oder nicht. Wenn man noch weitere Zahlen eingeben möchte, springt zeigt das Programm wieder die Eingabebox für die Zahlen, ansonsten beginnt es mit dem Addieren.

Meine Frage ist nun, wie ich die variable Anzahl an Eingaben realisieren soll bzw. wie sich das Programm merkt, wieviele Zahlen eingegeben worden sind und wieviele es somit addieren muss. 
Ich kann den Variablen für die Eingaben aus den Dialogfeldern ja keine feste Namen geben, da ich nicht weiß, wie viele Zahlen eingegeben werden. Gibt es eine Möglichkeit, dass "dynamisch", also sozusagen in Abhängigkeit der Anzahl der Eingaben zu lösen?

Bis jetzt kenne ich es nur, mit "festen" Variablen, also so:

String m = JOptionPane.showInputDialog("Bitte geben Sie eine Zahl ein!");

Nur wie kann ich das in Abhängigkeit der Anzahl der eingegeben Zahlen lösen? Gibt es eine Möglichkeit, das ohne Arrays zu lösen? Diese sollen wir nämlich nicht benutzen.

Vielen Dank im schon einmal im Vorraus,
Katharina


----------



## mccae (11. Dezember 2009)

Katharina_17 hat gesagt.:


> Hallo zusammen!
> 
> Für die Schule muss ich ein Programm schreiben, bei dem der Benutzer Zahlen eingibt, die das Programm dann addiert und ausgibt.
> 
> ...


Hallo!

Bei einer variablen Anzahl von Werten kommst du um dynamische Datenstrukturen nicht herum. (List, Set und Map näher anschauen).

Du kannst auch ein Array mit fester größe benutzen, und sobald dieses voll ist ein neues (größeres) erstellen und das alte reinkopieren...

Hier mal ein Beispiel einer endlosen Eingabe:


```
ArrayList<String> l = new ArrayList<String>();
					
					while(true){
						String in = JOptionPane.showInputDialog("Bitte eine String eingeben!");
						
						if(in == null){
							break;
						}
						
						l.add(in);
					}
					
					Iterator<String> it = l.iterator();
					
					while(it.hasNext()){
						String naechsterstring = it.next();
						System.out.println(naechsterstring);
					}
```

Es wird so lange ein InputDialog angezeigt bis einmal "Abbrechen" gedrückt wird und null zurückgegeben wird.

Bei jedem Durchlauf wird der eingelesene String der ArrayList hinzugefügt.
Diese Liste wird mithilfe eines Iterators durchlaufen...


----------

