Zahlen einlesen

K

Kitty

Gast
Hallo!

Ich habe ein Programm geschrieben, welches 10 beliebige Zahlen einliest und diese dann mit einem vorhandenen Array vergleichen soll! Weiterhin soll mir dann das Programm sagen, ob die Zahl im Array 1 ist und ob welche in der richtige Rangfolge stehn!

Jetzt komm ich leider nicht mehr weiter! Hoffe mir kann jemand helfen!



import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Aufgabe_3 {
public static void main(String[] args) {
int [] numbers = {10, 20, 2, 4, 5, 2, 30, 12, 18, 35};

int [] numbers2 = new int [10];
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
int i = 0;
while (i<numbers2.length){
try{
System.out.print("Geben Sie die " + (i + 1) + ". Nummer ein: ");

String inputValue = in.readLine();
int Value=Integer.parseInt(inputValue);

++i;

} catch (Exception e) {
System.out.println("Eingabe ist keine Nummer!");
}
i = 0;
int j = 0;
while (i<10){
while(j<numbers.length){
if(numbers2 == numbers[j]);
System.out.println("Die Nummer" + numbers2 + "existiert im ersten Array!");
}
if(numbers2 == numbers[j] && numbers2 == numbers){
System.out.println("Nummer: " + numbers2 + " sind auf gleicher Position");{
}
++j;
}
j=0;
++i;
}
}
}
}
 
Zuletzt bearbeitet von einem Moderator:

Xeonkryptos

Bekanntes Mitglied
Wie wäre es mal, wenn du beim Posten den roten Text über dem Eingabefeld liest und das auch ausführst? Das erleichtert für jeden die Hilfe!!! :rtfm:
 

Camill

Bekanntes Mitglied
Java:
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Aufgabe_3 {

	public static void main(String[] args) {

		int[] numbers = { 10, 20, 2, 4, 5, 2, 30, 12, 18, 35 };

		int[] numbers2 = new int[10];
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		int i = 0;
		while(i < numbers2.length) {
			
			try {
				System.out.print("Geben Sie die " + (i + 1) + ". Nummer ein: ");

				String inputValue = in.readLine();
				int Value = Integer.parseInt(inputValue);
				++i;
			} catch(Exception e) {
				System.out.println("Eingabe ist keine Nummer!");
			}
			
			i = 0;
			int j = 0;
			
			while(i < 10) {
				
				while(j < numbers.length) {
					if(numbers2[i] == numbers[j]);
					System.out.println("Die Nummer" + numbers2[i] + "existiert im ersten Array!");
				}
				if(numbers2[i] == numbers[j] && numbers2[i] == numbers[i]) {
					System.out.println("Nummer: " + numbers2[i] + " sind auf gleicher Position");
					{
					}
					++j;
				}
				j = 0;
				++i;
			}
		}
	}
}

Also was ich auf den ersten Blick schon mal sagen kann ist das du eine schöne Endlosschleife gebaut hast:
[JAVA=14]while(i < numbers2.length) {[/code]
[JAVA=26]i = 0;[/code]

Desweiteren liest du zwar eine Zahl ein, speicherst diese aber nicht in dem dafür vorgesehenen Array ab.


Wie genau lautet denn die Aufgabe?
Ich habe ein Programm geschrieben, welches 10 beliebige Zahlen einliest und diese dann mit einem vorhandenen Array vergleichen soll! Weiterhin soll mir dann das Programm sagen, ob die Zahl im Array 1 ist und ob welche in der richtige Rangfolge stehn!
Bei dem Rot Markierten verstehe ich nicht was genau du meinst.
 
Zuletzt bearbeitet:
K

Kitty

Gast
sorry

Java:
import java.io.BufferedReader;
import java.io.InputStreamReader;



public class Aufgabe_3 {
public static void main(String[] args) {
 int [] numbers = {10, 20, 2, 4, 5, 2, 30, 12, 18, 35};
 
 int [] numbers2 = new int [10];
 BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
 int i = 0;
 while (i<numbers2.length){
     try{
         System.out.print("Geben Sie die " + (i + 1) + ". Nummer ein: ");

        String inputValue = in.readLine();
        int Value=Integer.parseInt(inputValue); 
       
        ++i;
         
     } catch (Exception e) {
     System.out.println("Eingabe ist keine Nummer!");
 } 
     i = 0;
     int j = 0;
     while (i<10){
         while(j<numbers.length){
if(numbers2[i] == numbers[j]);
                 System.out.println("Die Nummer" + numbers2[i] + "existiert im ersten Array!");
             }
             if(numbers2[i] == numbers[j] && numbers2[i] == numbers[i]){
                 System.out.println("Nummer: " + numbers2[i] + " sind auf gleicher Position");{
                 }
                 ++j;
             }
             j=0;
             ++i; 
 }
 }
}
}
 

Xeonkryptos

Bekanntes Mitglied
Ich kann Camill nur zustimmen. Du hast in deinem Code 2 Endlosschleifen eingebaut. Entferne mal aus deinem Code:
Java:
i = 0;
j = 0;

Damit hast du schon einmal keine Endlosschleife. Wenn du jetzt die erste Stelle von den Arrays vergleichen willst, dann nutze lieber eine andere Variable und wenn du den Wert von i und/oder j brauchen solltest, empfehle ich dir zu einer weiteren lokalen Variable zu raten, aber auf keinen Fall die beiden Variablen i und j auf 0 zu setzen, da es sonst zu einer Endlosschleife kommt!
 
K

Kitty

Gast
Ok schon mal Dankeschön!

Das war die Aufgabenstellung!

Schreiben Sie ein Java-Programm, welches 10 ganze Zahlen vom Benutzer einliest und in einem Array speichert. Danach soll der Inhalt des Arrays mit dem Inhalt des nachfolgenden Arrays (numbers) verglichen werden.
Dem Benutzer soll mitgeteilt werden wieviele Zahlen bereits im internen Array vorkommen und ob die Reihenfolge aller Zahlen dieselbe ist.

Java:
public static void main ( St ing [] args ) {
int [] numbers = {10 , 20 , 2 , 4 , 5 , 2 , 30 , 12 , 18 , 35};
...\\ Hier folgt Ihr Programm!
}
 

Xeonkryptos

Bekanntes Mitglied
Java:
import java.util.Scanner;

public class Aufgabe_3 {
	public static void main(String[] args) {
		int[] numbers = { 10, 20, 2, 4, 5, 2, 30, 12, 18, 35 };
		int[] numbers2 = new int[10];

		/*
		 * Ein Scanner reicht hier vollkommen aus und ermöglicht ein
		 * vereinfachtes Lesen von int-Werten
		 */
		Scanner in = new Scanner(System.in);
		/*
		 * Trennen der for-Schleifen, da erstmal das Array befüllt werden muss,
		 * um dann jede Stelle prüfen zu können!
		 */
		for (int i = 0; i < numbers2.length; i++) {
			try {
				System.out.print("Geben Sie die " + (i + 1) + ". Nummer ein: ");
				numbers2[i] = in.nextInt(); // Speichern in das Array.
			} catch (Exception e) {
				System.out.println("Eingabe ist keine Nummer!");
			}
		}

		/*
		 * Beide Schleifen zusammen ermöglichen das Prüfen jeder Stelle
		 * miteinander, denn zuerst wird die Variable i auf 0 gesetzt und dann
		 * der Inhalt aus dem Array von numbers2 an der Stelle i mit allen
		 * Werten des Arrays numbers verglichen und das solange bis i die
		 * Array-Größe erreicht hat
		 */
		for (int i = 0; i < numbers2.length; i++) {
			for (int j = 0; j < numbers.length; j++) {
				if (numbers2[i] == numbers[j]) {
					System.out.println("Die Nummer" + numbers2[i]
							+ "existiert im ersten Array!");
					if (numbers2[i] == numbers[i]) {
						System.out.println("Nummer: " + numbers2[i]
								+ " sind auf gleicher Position");
					}
				}
			}
		}
	}
}

Das sollte so funktionieren. Hab es nicht getestet. Hab es etwas dokumentiert und erklärt.
 

Xeonkryptos

Bekanntes Mitglied
Mal davon abgesehen, dass ich das nicht bedacht habe :oops: hier die Schleife, die auch das beachtet! ;)

Java:
for (int i = 0; i < numbers2.length; i++) {
			int zwischenSpeicher = i;
            try {
                System.out.print("Geben Sie die " + (i + 1) + ". Nummer ein: ");
                numbers2[i] = in.nextInt(); // Speichern in das Array.
            } catch (Exception e) {
                System.out.println("Eingabe ist keine Nummer!");
                i = zwischenSpeicher - 1;
                continue;
            }
        }
 
Zuletzt bearbeitet:

Camill

Bekanntes Mitglied
So wird i immernoch Inkrementiert, ein
Code:
i--;
im catch-Block genügt. Jedoch bleibt er dann in der for-Schleife hängen - bin noch am ausprobieren :bahnhof:
 

Xeonkryptos

Bekanntes Mitglied
Hab es nochmal geändert. Wenn ich ehrlich bin, reicht wirklich ein i--, aber eine Endlosschleife hast du dann auch nur, wenn du einfach keine Zahl sondern irgendetwas anderes eingibst oder zumindest etwas, wo eine Exception fliegt!
 

Camill

Bekanntes Mitglied
Ja - genau das meinte ich mit dem "hängen" bleiben. Verstehe gerade aber auch nicht weswegen das so ist..
Sollte der Scanner nicht erst auf eine neue Eingabe warten, habe damit noch nie gearbeitet?
 

Xeonkryptos

Bekanntes Mitglied
Es liegt wohl daran, dass wenn eine Exception fliegt, das Programm oft hängen bleibt. Was ich in meinem Code auch nicht gemacht habe, im Catch-Block am Ende noch ein continue hinzufügen, damit er die Schleife weiter fortführt. Nach der Exception ist halt Schluss.

Hängt man ein continue dran, macht das Programm problemlos weiter. :)
 

Camill

Bekanntes Mitglied
Also bei mir bleibt er immernoch hängen:
Java:
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!
Geben Sie die 1. Nummer ein: Eingabe ist keine Nummer!

[...]


Habe nun mal folgendes gemacht:
[JAVA=12]Scanner in = new Scanner(System.in);[/code]
ersetzt durch
Java:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
[JAVA=20]numbers2 = in.nextInt(); // Speichern in das Array.[/code]
ersetzt durch
Java:
numbers2[i] = Integer.parseInt(reader.readLine());

Funktioniert jetzt, liegt somit wohl wircklich am Scanner.
 
Zuletzt bearbeitet:

Xeonkryptos

Bekanntes Mitglied
Es liegt wohl am Scanner, dass er einfach nicht mehr auf etwas wartet, weil die Eingabe falsch war. Irgendwie hat der da ein Problem. Man kann es aber auch anderster lösen!

Java:
for (int i = 0; i < numbers2.length; i++) {
			int value = 0;
			try {
				System.out.print("Geben Sie die " + (i + 1) + ". Nummer ein: ");
				value = in.nextInt();
			} catch (InputMismatchException e) {
				System.out.println("Eingabe ist keine Nummer!");
				i--;
				in = new Scanner(System.in);
				continue;
			}
			numbers2[i] = value; // Speichern in das Array.
		}

So fängt man auch nicht irgendeine Exception ab, sondern die InputMismatchException, die auch bei einer fehlerhaften Eingabe fliegt und durch die neue Zuweisung eines neuen Objektes läuft das ohne Probleme.
 

Camill

Bekanntes Mitglied
So geht das natürlich auch, ob es jedoch sinnvoll ist jedesmal ein neues Object zu erstellen sei mal dahingestellt - eine andere Lösung für den Scanner wüsste ich auch nicht.
 

Xeonkryptos

Bekanntes Mitglied
Ob es sinnvoll ist, ist wirklich fraglich, aber man erstellt bestimmt nicht so viele Objekte so schnell, dass es zu einem StackOverflow kommen sollte. Wenn man das Programm verwendet, gehe ich nicht davon aus, dass man so oft so viel falsch schreibt. :)

Außerdem spart man sich dann die Arbeit mit den direkten Streams. :) Für einen Anfänger finde ich den Scanner besser zu bedienen, als die Streams, aber das ist wohl geschmackssache. =)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Einlesen von Zahlen Java Basics - Anfänger-Themen 20
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
M Erste Schritte Zahlen einlesen und auswerten Java Basics - Anfänger-Themen 6
J Zahlen aus Konsole einlesen Java Basics - Anfänger-Themen 1
A Klassen Zahlen einlesen, an Klasse übergeben und Koordinaten ausgeben Java Basics - Anfänger-Themen 1
B Input/Output Zahlen einlesen Java Basics - Anfänger-Themen 6
L 3 Zahlen einlesen und nach der Größe Sortieren Java Basics - Anfänger-Themen 5
C Input/Output Primzahlenzerlegung -> könnte man Zahlen auch einlesen? Java Basics - Anfänger-Themen 4
J Zahlen einlesen Java Basics - Anfänger-Themen 3
J Problem mit einfachem einlesen von zahlen/strings Java Basics - Anfänger-Themen 3
J Zahlen und Zeichen einlesen Java Basics - Anfänger-Themen 6
L einlesen von zahlen Java Basics - Anfänger-Themen 7
C zwei Zahlen durch ":" getrennt einlesen Java Basics - Anfänger-Themen 5
K Zahlen nur 4 mal einlesen ! Java Basics - Anfänger-Themen 2
I Zahlen aus .dat einlesen Java Basics - Anfänger-Themen 7
M Einlesen von Zahlen aus Datei Java Basics - Anfänger-Themen 4
P Zahlen aus Datei in Array einlesen Java Basics - Anfänger-Themen 21
MrTical Zahlen einlesen um damit zu rechnen Java Basics - Anfänger-Themen 5
L zahlen in mehrdimensionales array einlesen Java Basics - Anfänger-Themen 3
H Zahlen von Textdatei einlesen Java Basics - Anfänger-Themen 2
N Zahlen einlesen und in umgekehrter Reihenfolge ausgeben Java Basics - Anfänger-Themen 5
K Zahlen über die Kommandozeile einlesen Java Basics - Anfänger-Themen 6
S Zahlen und Strings einlesen Java Basics - Anfänger-Themen 3
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
sserio Befreundete Zahlen Java Basics - Anfänger-Themen 7
AhmadSlack Verzweigungen zahlen multiplizieren Java Basics - Anfänger-Themen 4
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
H Zahlen kürzen Java Basics - Anfänger-Themen 2
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
H Ungerade Zahlen ausgeben von 1 bis 1000 Java Basics - Anfänger-Themen 8
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
X Wie kann ich Zahlen in einzelne Zifferne zerlegen? Java Basics - Anfänger-Themen 3
J 10 positive Zahlen eingeben Java Basics - Anfänger-Themen 10
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
M Zahlen erraten Java Basics - Anfänger-Themen 7
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
S Mit nextGaussian() positive Zahlen erzeugen? Java Basics - Anfänger-Themen 39
D auch negative Zahlen sotieren Java Basics - Anfänger-Themen 18
M Warum berechnet mein Primzahlenprog zu hohe Zahlen nicht? Java Basics - Anfänger-Themen 20
W Bell Zahlen Java Basics - Anfänger-Themen 2
H Min und Max von Zahlen Java Basics - Anfänger-Themen 10
der_Schokomuffin Fehler bei Zufallsgeneration von Zahlen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben