Erste Schritte If Abfragen + Scanner

Hallo liebe Leute,

ich habe zwei Fragen, wie kann ich mehrere If-Abfragen machen? An sich ist es ja ganz einfach, aber bei dem folgenden Code komme ich leider nicht weiter:

( 1 )
Code:
if ( scanner.nextLine().equalsIgnoreCase( "x" ) && TEST.equalsIgnoreCase( "x1" ) || scanner.nextLine().equalsIgnoreCase( "a" ) && TEST.equalsIgnoreCase( "a1" ) ) {
            System.out.println( "-> " + TEST );
        }

Problem: Die Abfrage a mit a1 wird nicht ausgeführt. Ich habe auch folgendes probiert:
Code:
if ( ( scanner.nextLine().equalsIgnoreCase( "x" ) && TEST.equalsIgnoreCase( "x1" ) ) || ( scanner.nextLine().equalsIgnoreCase( "a" ) && TEST.equalsIgnoreCase( "a1" ) ) ) {
            System.out.println( "-> " + TEST );
        }
( Siehe Klammer )

Die x & x1 Abfrage wird nicht ausgeführt. Standardmäßig ist es so, dass dann die a & a1 If Anweisung ausgeführt wird, das geht aber leider nicht.

-> a & a1 wird quasi gar nicht gelesen, obwohl ich x & x1 gar nicht abfrage.

( 2 )
Wie kann man einen Scanner nicht zum Schließen bringen? Wenn ich z.B. in einem Scanner ( System.in ) etwas schreibe, schließt sich das Programm direkt mit dieser Meldung:
Code:
Process finished with exit code 0
Wie kann ich dafür sorgen, dass der Prozess nie beendet wird?

Ich würde mich um paar Antworten freuen, dankeschön!


Mit freundlichen Grüßen,
 

CursedCookie

Mitglied
Was ist denn TEST dass die abfragen mit a1 etc nicht gemacht werden könnte daran liegen, dass du mit Scanner. Next Linie dann schon eine Zeile weiter landest. Weil es ja vorher schon aufgerufen wird bei x und x1. Speichere die eingelesene Zeile in einer variable zwischen. Und mach die abfragen auf die variable statt auf den Scanner.

Um das endlos laufen zu lassen mach ein while (true) {... } ausenrum
 
Was ist denn TEST dass die abfragen mit a1 etc nicht gemacht werden könnte daran liegen, dass du mit Scanner. Next Linie dann schon eine Zeile weiter landest. Weil es ja vorher schon aufgerufen wird bei x und x1. Speichere die eingelesene Zeile in einer variable zwischen. Und mach die abfragen auf die variable statt auf den Scanner.

Um das endlos laufen zu lassen mach ein while (true) {... } ausenrum
Erstmal danke, dass du Zeit für mich gefunden hast.

Es funktioniert, wenn ich die If-Abfrage einzeln mache, d.h. es liegt ein Fehler bei einer mehrfachigen If-Abfrage.

Ich habe in einer List<String> mehrere Sachen hinzugefügt und einen String erstellt. Dieser String sorgt dafür, dass ein zufälliger String aus der Liste nimmt. Dieser lautet TEST.

Mit einzeln meine ich das:
Code:
if ( scanner.nextLine().equalsIgnoreCase( "a" ) && TEST.equalsIgnoreCase ( "a1" ) ) {
           
        }
Dieser Code funktioniert hervorragend.

Jedoch funktioniert, wie oben schon beschrieben, das nicht:
Code:
if ( ( scanner.nextLine().equalsIgnoreCase( "x" ) && TEST.equalsIgnoreCase( "x1" ) ) || ( scanner.nextLine().equalsIgnoreCase( "a" ) && TEST.equalsIgnoreCase( "a1" ) ) ) {
            System.out.println( "-> " + TEST );
        }

Standardmäßig bei Java ist es so, wenn die ersten If-Abfragen Bedingungen erfüllt werden, werden die "oder" Abfragen ( -> || <- ) nicht mehr abfragt. Aber, ich frage gar nicht x & x1 ab. x + x1 gibt es nicht. Standardmäßig müsste dann automatisch a + a1 abgefragt werden.

Ich komme da leider nicht weiter.
 
Entschuldigung, ich verstehe das nicht so ganz, was du genau meinst.

Es soll so sein: Wenn Scanner & Test = x & x1 sind ODER wenn Scanner & Test = a & a1 sind.

Wie @CursedCookie schon gesagt hast, testest du in der zweiten IF-Anweisung zwei verschiedene Zeilen.
Wenn ich die If Abfragen getrennt mache, dann klappt es wunderbar ( siehe oben ).

Wenn ich diesen Code verwende:
Code:
if ( ( scanner.nextLine().equalsIgnoreCase( "x" ) && TEST.equalsIgnoreCase( "x1" ) ) || ( scanner.nextLine().equalsIgnoreCase( "a" ) && TEST.equalsIgnoreCase( "a1" ) ) ) {
            System.out.println( "-> " + TEST );
        }
dann passiert eben gar nichts.

Wenn ich in den Scanner eben x schreibe und TEST x1 ist, dann klappt es. Aber, wenn ich x und x1 ( in String ) nicht schreibe, jedoch a & der Random String a1 ist, passiert gar nichts.

Die If Abfrage will gar nicht funktionieren.

Ich danke dir für deine Hilfe.
 

InfectedBytes

Top Contributor
es geht ihm darum, dass jedes nextLine ein neue zeile einliest.
Falls du aber willst, dass beide abfragen sich auf die gleiche eingegebene zeile beziehen, musst du das ergebnis von nextLine zwischenspeichern:
Java:
String input = scanner.nextLine();
if ( ( input.equalsIgnoreCase( "x" ) && TEST.equalsIgnoreCase( "x1" ) ) || ( inputequalsIgnoreCase( "a" ) && TEST.equalsIgnoreCase( "a1" ) ) ) {
 
es geht ihm darum, dass jedes nextLine ein neue zeile einliest.
Falls du aber willst, dass beide abfragen sich auf die gleiche eingegebene zeile beziehen, musst du das ergebnis von nextLine zwischenspeichern:
Java:
String input = scanner.nextLine();
if ( ( input.equalsIgnoreCase( "x" ) && TEST.equalsIgnoreCase( "x1" ) ) || ( inputequalsIgnoreCase( "a" ) && TEST.equalsIgnoreCase( "a1" ) ) ) {
Vielen Dank, das funktioniert jetzt.

Eine Frage habe ich noch: Wie kann ich dafür sorgen, dass der Scanner sich gar nicht schließt? Immer, wenn ich etwas eintrage, kommt folgendes heraus:
Process finished with exit code 0
Der Prozess schließt sich. Natürlich bekomme ich vorher eine Antwort.

Ich will zum Beispiel, dass ich eine Zahl eintrage und das diese sich mit 2 addiert. Wenn ich dann bsp. 3 eintragen würde, würde das Ergebnis 5 lauten. Aber dann schließt sich der Prozess ( siehe oben ).

Wie kann ich das verhindern?
 

InfectedBytes

Top Contributor
das hat nichts mit dem scanner zu tun, sondern mit dem programm allgemein, das programm beendet sich nunmal, wenn all deine threads beendet sind. In deinem Fall eben, wenn die main methode verlassen wird.
Wenn du also eine bestimmte aktion immer wiederholen willst, solltest du eine schleife verwenden:
Java:
while(!beenden) {
  //stuff machen
  // ggf. bei einer bestimmten eingabe beenden, z.b. if(input.equals("ende")) beenden=true;
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Mit Scanner-Klasse eine Datei zeilenweise einlesen und nur bestimmte Zeichen abfragen Allgemeine Java-Themen 11
ReinerCoder Case statt if else Abfragen?! Allgemeine Java-Themen 8
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
VfL_Freak KeyEvent.VK_TAB im KeyListener abfragen Allgemeine Java-Themen 13
cool_brivk24 Variablen abfragen von Boolean von anderer Klasse Allgemeine Java-Themen 12
B Generelle Frage bei einer Webanwendung / Reduzierung von DB Abfragen Allgemeine Java-Themen 1
E Status eines USB Mikrofon abfragen Allgemeine Java-Themen 2
D TextBox Abfragen Allgemeine Java-Themen 2
kodela aktuelle Position des Hauptfensters abfragen Allgemeine Java-Themen 12
J Tonhöhe & Lautstärke abfragen? Allgemeine Java-Themen 3
K USB infos unter Linux abfragen? Allgemeine Java-Themen 2
P Threads Parallelisierte DB-Abfragen mit variabler Anzahl an Threads Allgemeine Java-Themen 4
MiMa Variableninhalte dynamisch abfragen Allgemeine Java-Themen 12
Z AD Abfragen mit Java! Allgemeine Java-Themen 3
L Abfragen ob Threads fertig Allgemeine Java-Themen 3
chuxXo BasicPlayer - Beendigung Abfragen (Allgemein) Allgemeine Java-Themen 21
P Name der Parent Klasse abfragen Allgemeine Java-Themen 8
H In windowClosing() abfragen, ob STRG gedrückt wurde Allgemeine Java-Themen 8
M Aktuelle Systemzeit und Datum abfragen Allgemeine Java-Themen 2
M CapsLock abfragen wenn Fenster wieder aktiviert wird Allgemeine Java-Themen 5
P Variablen Werte der Objektvariablen mit getFields() abfragen Allgemeine Java-Themen 2
P Klassen Template-Klasse für Datenbank-Abfragen erstellen Allgemeine Java-Themen 2
J XML Inhalt von Web abfragen Allgemeine Java-Themen 6
D Von mehreren Objekten eine Eigenschaft abfragen Allgemeine Java-Themen 11
S HTTP Filmgenre aus dem Internet abfragen! Allgemeine Java-Themen 6
M Zahl aktiver Threads einer Gruppe verlässlich abfragen Allgemeine Java-Themen 3
R Was ist hier falsch? Abfragen Allgemeine Java-Themen 3
E Unique Ids abfragen? Allgemeine Java-Themen 5
Airwolf89 Wahrheitstabelle abfragen Allgemeine Java-Themen 3
M ständiges abfragen einer .txt Allgemeine Java-Themen 2
S Zeitserver Abfragen und in Date speichern Allgemeine Java-Themen 5
V Hostname abfragen gelingt nicht immer Allgemeine Java-Themen 2
H Windows abfragen Allgemeine Java-Themen 2
M Enter Taste in Konsole abfragen Allgemeine Java-Themen 2
N IP-Adresse Eingabe abfragen? Allgemeine Java-Themen 4
C Batchdatei ausführen und Ergebnisse abfragen Allgemeine Java-Themen 8
M Vermeiden von instanceof Abfragen Allgemeine Java-Themen 3
M SQL-Installation abfragen Allgemeine Java-Themen 14
Z Wetterdaten abfragen Allgemeine Java-Themen 5
J Zweiter Prozess der alle x Sekunden etwas abfragen soll Allgemeine Java-Themen 2
R Zugriffsrechte abfragen Allgemeine Java-Themen 2
R boolean im Bean abfragen Allgemeine Java-Themen 18
G Checkboxen abfragen,Auswahl sichern, JTable laden Allgemeine Java-Themen 2
G Mausbewegung abfragen? Allgemeine Java-Themen 2
C Binärbereich einer Variablen abfragen Allgemeine Java-Themen 8
S Datenbank Abfragen mit großen Datenmengen Allgemeine Java-Themen 22
H Mit Java Desktop abmessungen height/width abfragen Allgemeine Java-Themen 20
H Sekunden messen wie lange h.ibernate/jdbc abfragen brauchen Allgemeine Java-Themen 7
G Abfragen des types Allgemeine Java-Themen 7
I Am System angemeldeten Benutzer abfragen Allgemeine Java-Themen 11
P verfügbare COM Schnitstellen abfragen Allgemeine Java-Themen 4
P <null> in einer DB abfragen Allgemeine Java-Themen 4
S Wie Carriage Return Line Feed abfragen. Allgemeine Java-Themen 6
T Hibernate Criteria Queries - Abfragen von Collection-Members Allgemeine Java-Themen 2
E Viele if Abfragen auf viele Strings --> Alternative zu if Allgemeine Java-Themen 8
T Tastatur global abfragen Allgemeine Java-Themen 2
M Map gezielt abfragen? Allgemeine Java-Themen 5
MQue Vereinfachung von if- Abfragen Allgemeine Java-Themen 21
Chris_1980 Mausbewegung abfragen Allgemeine Java-Themen 4
E Events von inneren Klasse abfragen Allgemeine Java-Themen 7
B jre version in der html-datei für ein applet abfragen Allgemeine Java-Themen 5
S Prozessorauslastung abfragen Allgemeine Java-Themen 2
C Tastatureingabe in einem Frame abfragen Allgemeine Java-Themen 2
R Thread.sleep - abfragen Allgemeine Java-Themen 4
S Name der ausführenden jar-Datei abfragen Allgemeine Java-Themen 11
S Abfragen der Komponente bei actionperformed Allgemeine Java-Themen 2
A Dateistatus abfragen und Datei löschen sobald kein Zugriff Allgemeine Java-Themen 7
G JavaMail - Message vom Server, wie abfragen? Allgemeine Java-Themen 2
J Name des aktuell aktiven Windows-Fensters abfragen? Allgemeine Java-Themen 4
T Bittorrent TRACKER abfragen mit JAVA Allgemeine Java-Themen 4
C Threads abfragen, aber wie? Allgemeine Java-Themen 3
J ArrayList mit SQL abfragen ? Allgemeine Java-Themen 6
thE_29 ? in einem String abfragen Allgemeine Java-Themen 7
X Input/Output InputStream/Scanner(System.in) read()/hasNextLine() block unterbrechen Allgemeine Java-Themen 7
J Variablen Scanner als Klassenvariable Allgemeine Java-Themen 5
M Kein Scanner Fehler durch falsche EIngabe Allgemeine Java-Themen 4
Bluedaishi Twain Scanner im Netzwerk Allgemeine Java-Themen 10
B Scanner erkennt keinen Text in Textdatei, obwohl welcher drinsteht Allgemeine Java-Themen 10
J Scanner oder BufferReader Allgemeine Java-Themen 2
1 Java Scanner Allgemeine Java-Themen 2
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3
A Scanner Variable Klassenimtern deklarieren Allgemeine Java-Themen 12
T Datentypen Scanner Allgemeine Java-Themen 4
P Input/Output java.util.Scanner in einer Schleife und Exception-Behandlung: Einlesen einer Zahl Allgemeine Java-Themen 4
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
P Input/Output Datei einlesen per Scanner(f) - mit Cron gehts nicht Allgemeine Java-Themen 1
S Erste Schritte Scanner in Methode einbauen Allgemeine Java-Themen 4
B QR Scanner WebCam Allgemeine Java-Themen 2
P Scanner als Inputstream für Java Prozess Allgemeine Java-Themen 4
H Scanner: Ausgabe erst nach Abbruch Allgemeine Java-Themen 8
S Bekomme mit Scanner und URL keine Html-Seite ausgelesen Allgemeine Java-Themen 3
J NetBeans Frage bezüglich der Scanner-Klasse Allgemeine Java-Themen 6
H Scanner soll einen Inputredirect einlesen, liest aber nicht jedes Wort ein. Allgemeine Java-Themen 3
Ark Locale, Formatter und Scanner: Bug bei Gleitkommazahlen? Allgemeine Java-Themen 2
X Scanner hört nach der 25. Zeile auf Allgemeine Java-Themen 6
A Split, Scanner, StringTokenizer oder PatternMatching für flexibles Dateieinlesen? Allgemeine Java-Themen 2
D java.util.InputMismatchException im Scanner -wieso? Allgemeine Java-Themen 5
K Scanner - große Textfile, nur 0 ab betim. Wert Allgemeine Java-Themen 4
D Scanner leer aber bufferedReader nicht?! Allgemeine Java-Themen 2
N Scanner läuft nicht durch Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben