Schleifen und Array, nur letzte Eingabe wird ausgegeben

Laashx

Mitglied
Hi allerseits,

ich sitze mal wieder an einem Problem und habe nun alles mögliche durch um mein Problem zu lösen. Ich denke ich weiß sogar, wo mein Problem liegt, jedoch weiß ich nicht, wie ich dieses lösen soll.
Was ich genau tun möchte:
So viele Werte einlesen, wie ich im ersten Schritt festlege, dabei nur Zahlen über 0 annehmen ansonsten erneute Anfrage starten(klappt).
Was nicht klappt, dass ich meine Werte in einem Array gespeichert bekomme und diese später ausgeben kann, also Beispiel:
1. Wert: 23,1
2. Wert: 34,5
3. Wert: 1,45

Bei mir kommt immer nur die letzte Eingabe raus, bzw es sieht bei 3 Eingaben so aus:

1. Wert: 0
2. Wert: 0
3. Wert: 1,45

Ich denke es liegt an meiner Schleife zum einlesen des Arrays, vielleicht kann mir da jemand einen Tipp geben, wo genau mein Fehler liegt und wie ich diesen beseitigen kann.

Hier mein Code:

Java:
import java.util.Scanner;
public class AriMittel {
public static void main (String[]args){
	Scanner scanner=new Scanner (System.in);
	System.out.println("Bitte geben Sie die Anzahl der zu bearbeitende Messwerte ein: ");
	int menge=scanner.nextInt();
	double zahlen[]=new double[menge];
    while (menge<=0){
		System.out.println("FEHLER – die Anzahl der Messwerte muss mindestens 1 sein!"); 
	System.out.println("Bitte geben Sie die Anzahl der zu bearbeitende Messwerte ein: ");
	menge=scanner.nextInt();}
    for (int i=0;i<menge;i++){    
	System.out.println("Bitte geben Sie den "+(i+1)+"."+" Messwert ein: "); //i+ 1 damit nicht 0 sonder 1 Messwert wiedergegeben wird
	zahlen=new double[menge];
	zahlen [i]=scanner.nextDouble();}
    for (int i=0; i<zahlen.length;i++){
		System.out.println((i+1)+". "+"Wert: "+zahlen[i]);
    }}}

Danke Laash
 
Dein "zahlen"-Array gehört vor der for-Schleife initialisiert. So wie du es jetzt hast, initialisierst du es jedes mal neu und schreibst im letzten Schritt deine Zahl in das letzte Feld.
 
Java:
int menge=scanner.nextInt();
double zahlen[]=new double[menge]; // ???
while (menge<=0){
  System.out.println("FEHLER – die Anzahl der Messwerte muss mindestens 1 sein!");
  System.out.println("Bitte geben Sie die Anzahl der zu bearbeitende Messwerte ein: ");
  menge=scanner.nextInt();
}
Wie kannst du das Array zahlen bereits anlegen, BEVOR du (sicher) eine menge>0 eingelesen hast?!?
 

Neue Themen


Zurück
Oben