# Zahlen in Array speichern und addieren



## Sophie (20. Jun 2010)

Hallo Zusammen

Ich möchte Zahlen (nur die korrekten Eingaben) in ein Array speichern und aufaddieren.
Nur leider gibt es mir immer das falsche Ergebnis aus.
Ich denke es liegt daran, dass die for-Schleife die ich hierfür verwende an der falschen Stelle ist, Zeile 42 - 43.
Ich wollte sie eigentlich auch in der Methode ausgeben einfügen (weil sonst meiner Meinung nach auch der return wird in der Methode eingeben keinen Sinn macht), aber dort funktioniert sie gar nicht. Kann mir da vielleicht jemand weiterhelfen?


```
public class Summation {
	
	public static void main (String [] args){
		
		int [] zahlen = einlesen();
		ausgeben (zahlen);
	}


	static int zahl;
	static int summe = 0; 
	static int AnzahlkorrekteEingabe = 0;
	static int AnzahlfalscheEingabe = 0;
	
	
	
	    //Methode zum einlesen und auswerten der Eingaben
	  	
	public static int[] einlesen() {
		
		int [] zahlenreihe = new int[10];
		
	  		
	  	  	for (int i = 0; i < 10; i++){                   //Es können bis zu 10 Zahlen eingegeben werden
	  	  		                                            //danach wird die Summe ausgegeben (es sei denn
	  	  		                                            //die Eingabe wird vorher mit 0 beendet
	  	    	  	
	  	
	  		    //Der Benutzer wird aufgefordert eine Zahl einzugeben
	  	  		zahlenreihe [i] = Konsole.getInputInt("Bitte geben Sie eine Zahl zwischen 1 und 10 ein (Ende mit 0): ");
	  		    System.out.println ("Zahl: " + zahlenreihe [i]);
   		       
	  		    
   		           		    
   		        if (zahlenreihe [i] == 0){                             // Die Eingabe wird mit der Zahl 0 beendet
   		         break;
   		    } 
   		    
   		        else if ((zahlenreihe [i] >= 0) && (zahlenreihe [i] <= 10)){      // Die Eingabe ist im Zahlenbereich 0-10 korrekt
   		    
   				System.out.println("korrekt");              // Dem Nutzer wird die Eingabe als korrekt bestätigt
   				for (int i1 = 0; i1 < zahlenreihe.length; i1++)
   					summe += zahlenreihe[i1];	
   			    AnzahlkorrekteEingabe++;                    // Die korrekten Eingaben werden gezählt
   			} 
   		    
   			    else{                                       // Wird eine Zahl ausserhalb des Zahlenbereichs eingegeben
   			         				                        // wird der Benutzer darauf hingewiesen
   				System.out.println("falsch");
   				AnzahlfalscheEingabe++;                     //Die falschen Eingaben werden gezählt
   			}
	  	 }
			return zahlenreihe;      
			
	  }

	  	// Methode zur Ausgabe der Ergebnisse auf der Konsole

	  	  public static void ausgeben(int[] zahlen) {
	  		  	  		  
	  		  
	  			  		  	  
				System.out.println("Korrekte Eingaben: " + AnzahlkorrekteEingabe);	  
	       		System.out.println("Summe der korrekten Eingaben:" + summe);
	       		System.out.println("Falsche Eingaben: " + AnzahlfalscheEingabe);	
				
		}
	
	  	  }
```

Danke und Gruss
Sophie


----------



## dev-eth0 (20. Jun 2010)

Beschreib doch mal genauer, wo dein Problem liegt. 

Möchtest du am Ende eigentlich die Summe aller Zahlen im Array (also zb bei {1,2,3} => 6) oder möchtest du das nacheinander addieren (also {1,2,3} => 1 + (1+2) + (1+2+3)) ?


----------



## Sophie (20. Jun 2010)

Also wenn zum Beispiel: 5,6,7,5,8 eingegeben wird möchte ich, dass 5+6+7+5+8 gerechnet wird.


----------



## dev-eth0 (20. Jun 2010)

Dann brauchst du die for Schleife da unten nicht mehr.

```
for (int i1 = 0; i1 < zahlenreihe.length; i1++)
                    summe += zahlenreihe[i1];   
                AnzahlkorrekteEingabe++;                    // Die korrekten Eingaben werden gezählt
```

wird zu:


```
summe += zahlenreihe[i];
AnzahlkorrekteEingabe++;
```


----------



## Sophie (20. Jun 2010)

Super! Dank Dir!


----------

