Array einlesen?
Guten Abend liebe Community, ich bin noch relativ neu im Umgang mit Java und habe etwas vor, aber leider nicht genug Kentnisse um es umzusetzen.
Undzwar möchte ich gern ein Programm schreiben womit ich den Mittelwert berechnen kann, als Zahlen will ich gern Double Zahlen verwenden es soll alle User eingaben einlesen , bis ich eine gewisse Zahl eingebe z.B 2, dann soll es stoppen und mir den Mittelwert ausgeben.
Die Berechnung krieg ich alleine hin denk ich, ich weiß nur nicht wie ich ein array erstelle und es richtig einlese und ausgebe.
Im moment sieht es wie folgt aus:
import java.util.Scanner;
System.out.print("Gib zahlen ein, zum beenden gib 2 ein: ")
double[] eingaben = new double[6]
Scanner sc = new Scanner(System.in);
Das Array geht nur bis 6 wie man sieht.
for (int i = 0; i < eingaben.length ; i++){
eingabe[i] =sc.nextDouble();
}
Sehr komischer Code wie man sieht und ich krieg auch nur Fehler, weiß leider nicht weiter, eventuell könnt ihr mir ja helfen wie ich das verbessern kann oder wie man das richtig macht.
2 Antworten
Du scheiterst jedenfalls nicht am Array.
Zuerst einmal brauchst du eine Klasse und eine Methode, in der der Code stehen kann. Ich nutze für deinen Fall einfach einmal die main-Methode.
import java.util.Scanner;
public class ComputeAverage {
public static void main(String[] args) {
/* your code ... */
}
}
Der Import wird vor der Klasse gelistet. Die Klasse (ich nenne sie hier ComputeAverage) muss genauso heißen, wie deine Java-Datei (also ComputeAverage.java).
Die main-Methode stellt den Einstiegspunkt für eine Java-Anwendung dar. Im Gegensatz zur Klasse hast du keine Freiheit darin, wie du sie benennst.
Bei deinen Anweisungen fehlen am Ende der Zeile stets die Semikolons. Wenn du die ergänzt hast, und bei deiner Variable in der Schleife noch das fehlende n ergänzt, ist dein Programm syntaktisch fehlerfrei.
Für den Abbruch nach Eingabe von 2 brauchst du noch eine Abfrage (if) innerhalb der Schleife (War die Eingabe 2? Wenn ja, brich ab mit break, ansonsten nicht). Nach der Schleife kann die Rechnung erfolgen.
Allerdings ist das mit einem Array etwas umständlich. Berechne doch stattdessen die Summe und zähle die Eingaben mit. Als Schleife könntest du while verwenden.
Pseudocode:
sum = 0
count = 0
while true:
input = readInput()
if input == 2:
break
sum += input
count += 1
# calculate average ...
Vielen Dank für die kurze Einführung und die Hilfestellung :)
Ich werde es mal so versuchen und hoffe es klappt dann besser.
In der Schleife fehlt dir bei "eingaben" das 'n'. Ausserdem Fehlen zwei Strichpunkte.
So sollte es passen:
import java.util.Scanner;
System.out.print("Gib Zahlen ein, zum Beenden gib 2 ein: ");
double[] eingaben = new double[6];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < eingaben.length ; i++){
eingaben[i] = sc.nextDouble();
}
So gibst du es aus:
for (int i = 0; i < eingaben.length ; i++){ //Hier wird über das Array iteriert, wie beim Einlesen vorhin auch
System.out.println(eingaben[i]); //Die Zahl der jeweiligen Stelle ausgeben
}
Gutefrage bietet übrigens die Möglichkeit, Code zu formatieren. Wie beispielsweise in meiner Antwort.
Markiere dazu den Code-Text, klick dann rechts oben vom Text-Feld auf das Quelltext-Symbol ( </> ). Falls das noch nicht vorhanden ist, musst du es erst per Klick auf die drei Punkte ( ... ) einblenden.
Natürlich fehlt bei dir noch der Code für die Klasse und die main-Methode. Ich dachte du hättest das Code-Stück einfach in der Frage weggelassen, um sie die Frage übersichtlicher zu gestalten. Vermutlich hat aber @regex9 recht, und du hast den Teil vergessen.