Anzahl Random Zahlen mit Scanner abfragen und in Array speichern

onlyxlia

Mitglied
Wie kann ich den Benutzer mithilfe des Scanners nach Anzahl von Random Zahlen fragen und daraus dann ein Array mit so vielen zufälligen Zahlen erstellen? Ziel ist es diese dann mithilfe von Bubble-, Insertion- und Selectionsort zu sortieren und in der Konsole auszugeben :)
 

Blender3D

Top Contributor
Wie kann ich den Benutzer mithilfe des Scanners nach Anzahl von Random Zahlen fragen und daraus dann ein Array mit so vielen zufälligen Zahlen erstellen?
Java:
        Random rnd = new Random(System.currentTimeMillis());
        Scanner input = new Scanner(System.in);
        System.out.print("Anzahl Zufallszahlen> ");
        int num = input.nextInt();
        int[] numbers = new int[num];
        for (int i = 0; i < numbers.length; i++)
            numbers[i] = rnd.nextInt();
        System.out.println(Arrays.toString(numbers));
 

KonradN

Super-Moderator
Mitarbeiter
Die „Nachbereitung“ wird vermutlich das Schließen des Scanners meinen… nur eben würde das auch System.in schließen… die Diskussion hatten wir schon so oft …

Daher einfach als Klassenvariable deklarieren und das ganze Thema ist gegessen aber, aber das ausführlich zu behandeln bei einer Anfänger Aufgabe macht wenig Sinn ….
 

Marinek

Bekanntes Mitglied
Ne, mehrere Aufrufe von nextInt() können manchmal zu Problemen führen... Aber ihr habt recht, wer gerade erst anfängt, sollte noch nicht sauber programmieren können.

Die Folgen sehen wir... 20 Jahre auf dem Stand eines Erst-Semsters und dann in allen Foren, die mit programmierung zu tun haben zweifelhafte Postings schreiben ohne Inhalt. Naja Inhalt dient nur der Provokation, mehr nicht. . Man wird von allen ausgelacht und bekommt nie einen Job in der Informatik. Was bleibt ist sinnlosses trollen ;)

Wenns spaß macht.. Zum Glück sind die Admins hier auf ttrab, was das Thema Trolle angeht. Von daher ;) Bye.
 

KonradN

Super-Moderator
Mitarbeiter
Hmm, jetzt haben wir hier Antworten ohne Kontext. Das ist sowas von bescheiden ....

@Robert Zenz Ist das was für Dich oder hast Du sowas schon?

Also an der Stelle einfach einmal paar Informationen rund um das Thema Scanner:

a) Wenn man versucht, Werte in einem bestimmten Format (z.B. einen Integer mittels nextInt()), dann kann es zu Exceptions kommen. Eine falsche Eingabe wie "Hallo" ist nun einmal keine Zahl. Daher macht es Sinn, vorab zu prüfen, ob eine Zahl vorhanden ist. Wenn keine Zahl vorhanden ist, dann muss man die falsche Eingabe erst entfernen. Hier kann man sich die Eingabe wie ein Stapel Papiere vorstellen: Scanner schaut dann sozusagen auf das oberste Papier und sieht "Hallo" und das ist keine Zahl. Der Zettel mit "Hallo" bleibt aber auf dem Stapel liegen. Daher sind hier paar Dinge wichtige:
a1) So eine Exception kann man sich vorstellen, wie ein Kind, das sich schreiend auf den Boden wirft. Das will man als Elternteil nicht. Man kann damit umgehen aber das ist nichts, das man provozieren möchte. Beim Programmieren bedeutet das, dass man mögliche Probleme wie fehlerhafte Eingaben, vorab prüft.
a2) Das führt dazu, dass man - wenn man bei der visuellen Darstellung mit dem Papierstapel bleibt - erst prüft, ob auf dem obersten Zettel eine Zahl steht. Wenn ja, dann liest man die ein und verarbeitet so den Zettel. Wenn nicht, dann verarbeiten wir den Zettel anders, also lesen z.B. den Text des Zettels und sagen: "Hey, 'Hallo' ist keine gültige Zahl!"

b) Generell ist es so, dass viele Klassen, die AutoCloseable implementieren, nach Verwendung geschlossen werden sollen. Dies liegt einfach daran, dass diese Klassen in der Regel irgend welche Ressourcen blockieren und die will man nach der Nutzung wieder frei geben. Das führt zu der Regel: Schließe alle AutoCloseables so Du diese erzeugt hast.
Dazu gibt es dann in Java sogar ein spezielles "try-with-resources", damit sicher gestellt ist, dass wirklich close aufgerufen wird.
Diese Regel ist aber so leider viel zu einfach und daher so in der Form nur bedingt tauglich. So z.B. hier: Das Schließen des Scanners würde auch System.in schließen. Und eine große Einschränkung war, dass man nur schließt, was man selbst erzeugt hat. Das kannst Du Dir so vorstellen wie das zum Recyclen geben von Dingen. Das machst Du nur mit Dingen, die Dir gehören! Etwas, das Du nur geliehen hast, gibst Du nicht weg zum recyclen!

c) Ein weiterer wichtiger Punkt bei Scannern ist das Verhalten der diversen Methoden. Denn es gibt zwei Typen von Methoden:
c1) Token basierte Methoden. Dies sind next, nextInt, ... Es wird genau ein Wert gelesen und der Rest bleibt
c2) Zeilen basierte Methoden. Dies ist nextLine. Hier wird bis einschließlich einem Zeilenumbruch alles gelesen.
Das Mischen dieser Methoden ist problematisch. Dies möchte ich anhand eines Beispiels aufzeigen. Wichtig ist dabei, dass Eingaben nacheinander in einem sogenannten Stream geliefert werden. Wenn ich also "Hallo" eingebe und dann Enter drücke, dann habe ich in diesem Stream 'H', 'a', 'l', 'l', 'o', '\n'
nextLine() würde alle diese Zeichen entnehmen und "Hallo" zurück geben. Der Stream ist dann leer.
next() würde nur das nächste Token einlesen, also bis zu einem Leerzeichen oder Zeilenumbruch. Da würde also das "Hallo" gelesen und zurück gegeben, aber der Zeilenumbruch würde bleiben!

Nun machen wir ein Beispiel: Wir wollen wissen, wieviele Elemente von einem Produkt gekauft werden sollen. Dazu wollen wir erst die Anzahl lesen (nextInt) und dann, was gekauft werden soll: nextLine().
Also die Eingabe wird dann sein: Erst z.B. "5" + Enter und dann "rote Äpfel" + Enter.
Spielen wir dies nun einmal durch:
Wir kommen zum ersten nextInt(). Angenommen es gab noch keine Eingaben, dann hält das Programm an und ich kann eingeben "5\n".
Die "5" wird entnommen, das "\n" bleibt übrig in dem Eingabestream und es wird 5 zurück gegeben.
Nun kommen wir zum nextLine(). Da wir aber noch das "\n" im Eingabestream haben, wird nicht auf eine Eingabe gewartet sondern es wird das "\n" gelesen und ein leerer String wird zurück gegeben.
Daher ist es notwendig, dass man beim Wechsel von Token basierter Eingabe hin zu Zeilen orientierter Eingabe ein nextLine() aufruft ohne den Inhalt auszuwerten.

Das alles sind Dinge, die aber nur wichtig werden, wenn man ein wirkliches Programm schreibt. Wenn man aber gerade dabei ist, das Programmieren zu lernen und erst einmal nur die Java Syntax und die generelle Vorgehensweise lernen will, dann ist das alles natürlich komplett egal! Wenn man da beim Einlesen einer Zahl "Hallo" schreibt, dann darf das Programm mit einer für Anwender unverständlichen Meldung schlicht abstürzen. Daher darf das natürlich hier bei der Aufgabe komplett ignoriert werden!
 

KonradN

Super-Moderator
Mitarbeiter
Lieber Tobias,
wenn Du meinst, etwas beitragen zu können, dann mach es doch bitte ordentlich. Orakelhafte Aussagen helfen in keiner Weise und führen nur zu solchen Threads. Schreibe doch einfach zukünftig ein paar Sätze mehr oder suche einen Link der eine Thematik, die Du ansprechen willst, beschreibt. Das erspart uns dann unnötige Erläuterungen und vor allem diese Off Topic Diskussionen.

Inzwischen solltest Du doch in der Lage sein, auch mal den einen oder anderen Satz zur Erläuterung zu schreiben.
 

KonradN

Super-Moderator
Mitarbeiter
Ich denke, Du hast 2 Punkte missverstanden:
a) Deine Person ist für uns absolut uninteressant. Ob Du nun eine vergoldete Badewanne hast oder nicht, ob Du nun so "Ticks" hast oder nicht, ob Du unser Foren-Clown "TobiasNRW" bist oder nicht ... das spielt alles einfach keine Rolle für uns.

b) Es geht nicht um "Hilfe", es geht um gegenseitigen Austausch und damit um eine Art von Weiterbildung. Es ist nun einmal alles im Wandel und es entstehen relativ schnell sehr viele neue Ideen. Und es werden viele Dinge umgeworfen und durch neue Ansätze verdrängt. Aber natürlich setzt das natürlich auch Voraus, dass man seine eigene Position ständig in Frage stellt.
Und besonders wichtig: Es geht dabei nicht nur um ein richtig oder falsch oder besser und schlechter. Es geht oft einfach um die Erwartungshaltung Anderer, die man möglichst gut erfüllen möchte.

Darüber kannst Du gerne nachdenken oder es einfach sein lassen. Wie schon gesagt: Mir ist es komplett egal. Im beruflichen Umfeld würde eine Person wie Du unkritisch sein. Und in Foren regeln das die Moderatoren. Also nicht mehr als etwas, über das man den Kopf schüttelt. Damit lasse ich es dann auch, den jede weitere Kommunikation ist schlicht sinnlos.
 

Robert Zenz

Top Contributor
Hmm, jetzt haben wir hier Antworten ohne Kontext. Das ist sowas von bescheiden ....

@Robert Zenz Ist das was für Dich oder hast Du sowas schon?
Was willst du mir damit sagen? ;)

Benutzerinteraktion habe ich nur in den Beispielen hier und da drinnen, als Wiederholung ist mir das schon fast etwas zu sehr an, uh, eigentlicher Entwicklung d'ran (die Wiederholungen sind halt mehr so Richtung allgemeine Java/JVM Themen, aber auf der anderen Seite Umgang mit einer bestimmten Klasse klingt auch nicht schlecht). Aber ich koennte mal ein Beispiel schreiben welches sich nur mit der Benutzerinteraktion auf der Konsole beschaeftigt und dabei all die Fallstricke erklaert.

so eine Scheiße lesen müsste, die ich nicht geschrieben habe.
Naja, musstest du eben nicht, du hast dich aktiv dazu entschieden es zu tun, wir versuchen eh schon alles um es dir zu ersparen, aber du entscheidest dich ja immer dafuer. Sich dann als Opfer hinzustellen ist langweilig, jeder billige Troll auf Twitter bekommt das besser hin als du.
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Was willst du mir damit sagen? ;)
Meine Gedanke war, dass man ggf. den Scanner mit paar Eigenschaften erläutert. Aber Du hast wohl Recht, dass ist weniger Java Wiederholung sondern mehr ganz spezifisch:
  • AutoClosable ist beim Scanner ein ganz spezifisches Thema und meist uninteressant.
  • Das mit dem Token basiert und Zeilen basiert ist ganz klar Verhalten Scanner und damit wohl auch nicht ganz passend.
  • Und das Letzte (in dem Post der erste Punkt) war das allgemeine Vorgehen bezüglich Exceptions und damit vermutlich auch zu speziell.

Ich hatte mich etwas leiten lassen von wegen typische Anfängerthemen und damit evtl. interessant für Deine Zusammenfassung - aber hatte nicht wirklich über Deine Zielsetzung nachgedacht.
 

Robert Zenz

Top Contributor
Meine Gedanke war, dass man ggf. den Scanner mit paar Eigenschaften erläutert.
Ne, ich meinte mit "wir haben hier zusammenhanglose Antworten...Robert das ist doch was fuer dich!" ;)

Ich hatte mich etwas leiten lassen von wegen typische Anfängerthemen und damit evtl. interessant für Deine Zusammenfassung - aber hatte nicht wirklich über Deine Zielsetzung nachgedacht.
Aber ich verstehe was du meinst. Ein Java-Forum.org-Beispiel waere da vermutlich die passende Wahl der Loesung. Da arbeite ich ja auch viel mit Kommentaren um Dinge uz erklaeren, und dass kann man dann auch schoen aufbauen.

Alternativ koennte ich mir auch eine Wiederholung entweder zum Thema Benutzerinteraktion vorstellen, oder vielleicht wirklich eien Erklaerung der Funktionsweise von Scanner und die Verwendung. Fuer letzteres brauche ich aber schon eine gute Idee, weil das fuehlt sich so ein biszchen nach wiederholen Javadoc an. Aber vielleicht faellt mir da was dazu ein, ich bin heute schon ziemlich durch.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
C Parameter in verschiedenen Anzahl und Typen Java Basics - Anfänger-Themen 6
Ibrahim Anzahl möglicher Reiserouten zurückgeben Java Basics - Anfänger-Themen 5
K loop pausieren für eine bestimmte Anzahl? Java Basics - Anfänger-Themen 1
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
I Eindeutiger String mit maximaler Anzahl an Zeichen Java Basics - Anfänger-Themen 11
nils812 Black Jack Karten Anzahl begrenzen Java Basics - Anfänger-Themen 5
berserkerdq2 sqllite in Java, wenn ich mache select count(*) ..., erhalte ich dann nur die gezählte Anzahl oder werden auch die Tabellen ausgegeben? Java Basics - Anfänger-Themen 2
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
B Anzahl Nullen uns Einsen in String ermitteln Java Basics - Anfänger-Themen 3
O Ich habe einen String und soll mit matches schauen, ob ein Buchstabe zu einer geraden ANzahl im String vorkommt, wie soll das gehen? Java Basics - Anfänger-Themen 7
C Anzahl ArrayLists unbekannt Java Basics - Anfänger-Themen 4
O Anzahl Datensätze ausgeben Java Basics - Anfänger-Themen 5
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
RudiRüssel maximale Anzahl von Schlüsseln in einer Hash Tabelle Java Basics - Anfänger-Themen 2
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
L Anzahl der benachbarten Minen berechnen und setzen Java Basics - Anfänger-Themen 15
Kirby.exe Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
L Anzahl der Elemente key in einem Array mit log(N) Laufzeit Java Basics - Anfänger-Themen 4
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
O ObjectOutputStream Anzahl Objekte festhalten Java Basics - Anfänger-Themen 17
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
sondr Anzahl der gleichen Positionen im Array Java Basics - Anfänger-Themen 3
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
Y Begrenzte Anzahl an Objekten? Java Basics - Anfänger-Themen 12
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
L Graphen: Anzahl Knoten // Knoten in Array speichern Java Basics - Anfänger-Themen 4
E Anzahl Datensätze in Textfeld Java Basics - Anfänger-Themen 5
K Anzahl gleicher Elemente in Array Java Basics - Anfänger-Themen 32
T befehle unterschiedlicher anzahl an strings wiedergeben Java Basics - Anfänger-Themen 2
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
LikeManuel Anzahl der Teiler Java Basics - Anfänger-Themen 6
D Anzahl von Zahlen bei eingabe begrenzen Java Basics - Anfänger-Themen 37
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
J Max. Anzahl von Knoten im Binärbaum Java Basics - Anfänger-Themen 3
ralli85 Programm nach einer gewissen Anzahl von Eingaben beenden Java Basics - Anfänger-Themen 15
Z Ausgabe: Anzahl Sterne, danach verringern Java Basics - Anfänger-Themen 7
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
A Anzahl der Elemente in einem Stack wiedergeben Java Basics - Anfänger-Themen 3
V Anzahl der Möglichkeiten 20 € zu bezahlen Java Basics - Anfänger-Themen 2
A variable Anzahl an Nutzereinagben Java Basics - Anfänger-Themen 4
stylegangsta Anzahl der gefunden array Werte ausgeben Java Basics - Anfänger-Themen 6
D Variable Anzahl an Buttons per Schleife Java Basics - Anfänger-Themen 7
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
M Überschneidende Anzahl von Tagen Java Basics - Anfänger-Themen 4
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
S Input/Output Alphabet in eine Datei schreiben und Anzahl von Zeichen ausgeben. Java Basics - Anfänger-Themen 4
I Anzahl der Rechenschritte darstellen lassen Java Basics - Anfänger-Themen 11
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
T Anzahl bestimmter Werte eines arrays bestimmen Java Basics - Anfänger-Themen 4
A Rekursion, Anzahl von Stellen ausgeben Java Basics - Anfänger-Themen 7
S Anzahl Quersummen bis zur Einstelligkeit Java Basics - Anfänger-Themen 12
S Anzahl unterschiedlicher Elemente zählen Java Basics - Anfänger-Themen 4
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
C Beliebige Anzahl Arrays zusammenfügen Java Basics - Anfänger-Themen 5
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
I Methoden ByteBuffer - Anzahl führender Nullen Java Basics - Anfänger-Themen 3
E Array Anzahl verschiedener Werte ausgeben Java Basics - Anfänger-Themen 3
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
B Anzahl if anweisungen nicht bekannt Java Basics - Anfänger-Themen 3
T Anzahl der Schritte berechnen Java Basics - Anfänger-Themen 6
R Anzahl der ineinander verschachtelten for-Schleifen von Variable abhängig machen Java Basics - Anfänger-Themen 5
P BitSet- Objekt- Anzahl der Elemente bestimmen Java Basics - Anfänger-Themen 2
B Variablen Unbekante anzahl an Strings splitten und vergleichen Java Basics - Anfänger-Themen 31
M Anzahl Zahlen in String Java Basics - Anfänger-Themen 21
A Threads Minimale und maximale Anzahl. Java Basics - Anfänger-Themen 28
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
H Anzahl Ziffer in Zahl bestimmen Java Basics - Anfänger-Themen 3
A Anzahl nodes in einem Tree Java Basics - Anfänger-Themen 2
G maximale Anzahl der Tage im Monat Java Basics - Anfänger-Themen 18
G Datentypen Double ausgeben mit minimaler Anzahl Nachkommastellen Java Basics - Anfänger-Themen 3
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
B genaue Anzahl der Operationen in Schleifen Java Basics - Anfänger-Themen 5
Dit_ Anzahl der Bestellungen grafisch abbilden | Statistisk Java Basics - Anfänger-Themen 6
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
F Methoden Hanoi - Anzahl der Bewegungen Java Basics - Anfänger-Themen 8
A Counter für die anzahl von regulären ausdrücken Java Basics - Anfänger-Themen 4
M float/double Anzahl Nachkommastellen ermitteln Java Basics - Anfänger-Themen 18
B Anzahl der Werte bestimmen Java Basics - Anfänger-Themen 14
K Sortierung von Anzahl der Wörtern in ArrayList Java Basics - Anfänger-Themen 4
X Anzahl Baumknoten bestimmen Java Basics - Anfänger-Themen 5
K Anzahl Wörter in Zeile Java Basics - Anfänger-Themen 24

Ähnliche Java Themen


Oben