ich habe vor zwei Monaten mit dem Informatikstudium begonnen und wie so viele auch lerne ich Java. Bisher habe ich alle Probleme mit Hilfe von Scripten, Vorlesungsfolien, Google, YouTube, Kommilitonen, lösen können.
Jetzt stoße ich auf folgendes (scheinbar) unlösbare Problem.
Meine Aufgabe ist es, den Benutzer zu fragen, wieviele Werte er einlesen möchte. Anschließend kann er dann Werte eingeben und zuletzt werden die Werte dem Benutzer angezeigt.
Zunächst habe ich das Programm mit normalen for Schleife programmiert und dann versucht die for Schleifen in for-each Schleifen zu ändern. Bei der Ausgabe der Daten aus dem Array hat das auch funktioniert, aber nicht bei der Eingabe (In der Aufgabe steht explizit, dass man sowohl für die Eingabe als auch für die Ausgabe eine for-each Schleife verwenden soll).
Hier ist mein Code:
Java:
importjava.util.Scanner;publicclassAufgabe27{staticScanner in;publicstaticvoidmain(String[] args){
in =newScanner(System.in);System.out.println("Programm Array Ein- und Ausgabe");System.out.println("Wie viele Werte sollen eingelesen werden?");int anzahl = in.nextInt();int zahlen[]=newint[anzahl];for(int i=0;i<anzahl;i++){System.out.print("Bitte geben Sie den "+(i+1)+". Wert ein: ");
zahlen[i]= in.nextInt();}System.out.print("Sie haben folgende Werte eingegeben: ");for(int element : zahlen){System.out.print(element+", ");}}}
Kann man überhaupt die for-each Schleife für eine Eingabe benutzen? Habe auch auf einer Internetseite gelesen, dass for-each nur lesend auf ein Array zugreifen kann.
Kann man überhaupt die for-each Schleife für eine Eingabe benutzen?
Habe auch auf einer Internetseite gelesen, dass for-each nur lesend auf ein Array zugreifen kann
Zunächst einmal ist ja eine for-each-Schleife nur eine verkürzte Schreibweise der 'normalen' for-Schleife, also funktional nichts anderes!
Zudem greifst Du doch auch nur lesend zu ...
ich habe schon diverse Seiten durchgelesen und wenn for-each erklärt wurde, wurde immer nur aus einem Array ausgelesen, aber niemals Werte in ein Array gespeichert. Das wird entweder über eine Initialisierung oder eine for Schleife gemacht. Bleibt die Frage, ob man mit for-each in ein Array schreiben kann.
So wäre es möglich, aber unsinnig bleibe lieber bei der normalen for-Schleife
Java:
int i =0;for(int element : zahlen){System.out.print("Bitte geben Sie den "+(i+1)+". Wert ein: ");
zahlen[i]= in.nextInt();
i++;}
Hier wird der Zugriff auf den richtigen Index über eine extra Zählvariable realisiert. Die foreach-Schleife wird nur verwendet um eben das Array durchzugehen, nicht mehr und nicht weniger.