Konsoleneingabe in BlueJ?
Wie lautet der 'Code' den man in BlueJ eingib, um als Benutzer in der Konsole was eingeben zu können, und wo genau muss der hin?
Beispielsweise möchte ich den Benutzer fragen, wie der heißt also:
public void namen_fragen() {
System.out.println("Wie heißt du?");
}
(oben bei Attributen:
private String name;)
Wie genau mach ich das jetzt, dass man bei der Konsole was eingeben kann, also kommt dann noch was beim Konstruktor? Bitte ausführlich erklären. Danke im Vorraus. :)
2 Antworten
Schau dir mal die Klasse java.util.Scanner näher an. Damit sind Eingaben problemlos realisierbar.
Im Wesentlichen:
Scanner sc = new Scanner(System.in);
String eingabe = sc.nextLine();
Steht nicht in einem separaten Block weil ich mobil mit der Formatierung nicht klarkomme.
Du kennst bereits den Standard-Ausgabe-Stream System.out, der Standard-Eingabe-Stream heißt System.in. Dieser ist ein Objekt des Typs InputStream. Du kannst die read-Methode nutzen, um einzelne Bytes auszulesen.
https://docs.oracle.com/javase/7/docs/api/java/io/InputStream.html#read()
Noch einfacher ist es aber, wenn du das Objekt durch eine Instanz der Scanner-Klasse erweiterst. Sie bietet mehrere Methoden an, den Ausgabe-Stream leichter auszulesen.
https://docs.oracle.com/javase/8/docs/api/java/util/Scanner.html
Bsp.:
Scanner input = new Scanner(System.in); int number = input.nextInt();
Das empfindest du aufwendig? Es sind doch nur 2 Zeilen + der Import. So weit ich das sehe, hast du bisher auch alles richtig gemacht. Nun fehlt dir doch nur noch das if-else. Wieso du nun deine Konsole nicht mehr sehen kannst, kann ich dir nicht sagen. Vielleicht startest du BlueJ einfach nochmal neu.
Danke für deine Hilfe, ich habe mir das durchgelesen, und es eigentlich so im Groben verstanden, aber ich wusste nicht dass das so schwer und aufwendig ist.. Ich habe das jetzt versucht in meiner Klasse einzusetzten, und habe keine Fehler, aber ich kann jetzt die Konsole nicht mehr sehen.. und bin verwirrt.
Ich verstehe jetzt nicht, was ich falsch gemacht habe..
(Sry, wir haben seit September das Thema BlueJ in Informatik, und wir hatten das mit der Eingabe noch nicht gehabt..)
import java.util.Scanner;
public class Kaffeemaschine
{
...
public Kaffeemaschine()
{
...
}
public static void main(String[] args)
{
System.out.println(" - 1)Wasserstand überprüfen");
System.out.println(" - 2)Bohnenvorrat überprüfen");
Scanner input = new Scanner(System.in);
System.out.print("Geben Sie die Nummer Ihrer gewünschten Anweisung ein.");
int eingabe = input.nextInt();
}
}
Ich will das so machen, dass man die Zahl von den Anweisungen angibt und darauf hin if und else Verzweigungen folgen, aber ich krieg das mit der Konsolen-Eingabe nicht hin.. :(