Vom Benutzer eingebene Integer addieren und ausgeben.

LongJohn

Mitglied
Ich möchte ein Programm schreiben, dass den Benutzer zuerst nach der Anzahl der einzugebenden Integer fragt und diese dann vom Benutzer einzeln eingetippt werden müssen. Zum Schluss werden sie zusammengezählt.

Beispiel Konsole:
Geben Sie die Anzahl der Integer an:

Benuzter: 2

Geben Sie den ersten Integer an:

Benutzer: 5

Geben Sie den zweiten Integer an:

Benutzer: 3

Das Ergebnis lautet 8.
 
Zuletzt bearbeitet:
Mein Problem ist, ich weiß nicht, wie ich von der Anzahl der Integer auf die vom Benutzer einzugebenden Integer verweisen soll. Der Benutzer gibt z.B. 5 Integer ein, aber wie soll ich es anstellen, dass dan 5 Integer separat ausgegeben werden, die ja der Benutzer dann wieder eingeben soll.
 
Du könntest z.B anhand der eingabe der ersten Zahl ein Array mit der eingegebenen länge erstellen , welches du dann mit den folgenden Zahlen füllst.
 
Java:
public static void main(String[] args){

}

Das args Array enthält alle Eingaben gesplittet nach Leerstelle als String. Es dient praktisch dem auslesen der Konsole.
Den Array Inhalt musst einfach in Integer umwandeln. Dazu schaue dir am besten die JAVA API DOKU an was die Klasse Integer sonst noch für Methoden hat 🙂

Dann schau dir noch die Klasse String an, die hat da auch split(...), damit kann man auch was machen.
Das Ergebnis ist ein Array aufgespaltet nach einem beliebigen Trennzeichen. Dann überlege was das obige args mit der String Klasse zu tun hat. Da sollten dir Gemeinsamkeiten auffallen ^^

Eine fortgeschrittenere Variante wäre die Klasse Scanner, von der du aber erst mal die Finger lassen solltest. Damit kann man den ganzen String einlesen und explizit nach Zahlen mit der next() Methode suchen.
 
Zuletzt bearbeitet:
Java:
public static void main(String[] args){

}

Das args Array enthält alle Eingaben gesplittet nach Leerstelle als String. Es dient praktisch dem auslesen der Konsole.
Den Array Inhalt musst einfach in Integer umwandeln. Dazu schaue dir am besten die JAVA API DOKU an was die Klasse Integer sonst noch für Methoden hat 🙂

Dann schau dir noch die Klasse String an, die hat da auch split(...), damit kann man auch was machen.
Das Ergebnis ist ein Array aufgespaltet nach einem beliebigen Trennzeichen. Dann überlege was das erste mit dem zweiten zu tun hat 🙂

Eine fortgeschrittenere Variante wäre die Klasse Scanner, von der du aber erst mal die Finger lassen solltest. Damit kann man den ganzen String einlesen und explizit nach Zahlen mit der next() Methode suchen.

Die Benutzung von Konsolenparametern ist doch völlig am Thema vorbei. Speziell die von dir ausgeschlossene Scanner-Klasse ist genau das, was sich der Fragesteller anschauen sollte!
 
Die Benutzung von Konsolenparametern ist doch völlig am Thema vorbei. Speziell die von dir ausgeschlossene Scanner-Klasse ist genau das, was sich der Fragesteller anschauen sollte!

Geht auch mit Klasse Console, sogar leichter und die wurde auch extra für sowas gemacht.
Scanner ist bischen overkill für sowas 🙂

Habe nur das mit der Anzahl der Eingaben übersehen, dachte er wollte die Integer hintereinander wegschreiben^^
 
Zuletzt bearbeitet:
Kannst du das bitte ein bisschen spezifizieren? Meiner Meinung nach ist das einfachste und beste, die Scanner-Klasse zu verwenden. Oder wenns wirklich sein muss, ein JOptionPane.

Java:
		Console con = System.console();
		con.readLine();

Scanner kann ja alles, aus Dateien und Streams lesen, aus Konsole usw. Erst wenn der String geparst werden muss, ist Scanner interessant. Dafür hat auch Console die Readline mit Parametern, die über einen Scanner arbeitet.

Java hat viele Komfort Funktionen bekommen die man ruhig nutzen kann, macht den Code lesbarer.
 
Zuletzt bearbeitet:
Er muss ja geparst werden. Hier sollen nur Integer eingelesen werden, was mittels nextInt() eigentlich ziemlich gut lösbar ist.

Beispiel (adaptiert von Java.util.Scanner.nextInt() Method Example)

Java:
public class ScannerDemo {

	public static void main(String[] args) {

		// create a new scanner with the specified String Object
		Scanner scanner = new Scanner(System.in);

		// find the next int token and print it
		// loop for the whole scanner
		while (scanner.hasNext()) {

			// if the next is a int, print found and the int
			if (scanner.hasNextInt()) {
				System.out.println("Found :" + scanner.nextInt());
			}
			// if no int is found, print "Not Found:" and the token
			System.out.println("Not Found :" + scanner.next());
		}

		// close the scanner
		scanner.close();
	}
}

Der ganze Zauber ist nicht mehr als ein Fünfzeiler. Für die Lösung müssten nur noch ein paar Variablen dazugebaut werden.
 
Was wenn der User eingibt: 44asdf44 ?
Dann wird es komplizierter.

Mit ganze Zeile parsen + in Integer umwandeln fliegt dir direkt eine Execption um die Ohren die man abfangen kann. Keine Fälle beachten, nix.
 

Zurück
Oben