If-Abfrage mit Parameter

MiMa

Top Contributor
Hallo,
ich habe eine Methode mit Parameter geschrieben, die eine ArrayList<String> entweder auf die Konsole oder in das LOG ausgibt. Eigentlich ist es eine einfache IF-Abfrage.
Irgendwie verstehe ich das oder ich habe Tomaten auf den Augen?
Aufruf der Funktion:
Code:
ausgabeListeLogKon(ArrayListe, "Log")
ausgabeListeLogKon(ArrayListe, "Kon")
Die Methode
Java:
**
     * Ausgabe von Listen in das LOG oder auf die Konsole
     *
     * @param liste <b>ArrayList\<String\></b>
     * @param logKon <b>String</b> ("Log"/"Kon")
     */
    // bFunk ausgabeListeLogKon(ArrayList<String> liste, String logKon)
    public static void ausgabeListeLogKon(ArrayList<String> liste, String logKon) {
        if (logKon.isEmpty()) {
            LOG.error("Der Parameter \"Log\"/\"Kon\" fehlt");
        } else if (!"Log".equals(logKon) || !"Kon".equals(logKon)) {
            LOG.error("Der Parameter \"Log\"/\"Kon\" ist falsch geschrieben");
        } else if (logKon.equals("Log")) {
            LOG.info("Liste wird im LOG ausgegeben");
            liste.forEach((zeichenkette) -> {
                LOG.info(zeichenkette);
            });
            // Ausgabe in LOG
        } else if (logKon.equals("Kon")) {
            LOG.info("Liste wird auf der Konsole ausgegeben");
            liste.forEach((zeichenkette) -> {
                System.out.println(zeichenkette);
            });
        } // Ausgabe auf Konsole
    } // ausgabeListeLogKon
Wenn der Parameter "" ist -> Ausgabe : Der Parameter "Log"/"Kon" fehlt -> OK
Wenn der Parameter "LoL" ist -> Ausgabe : Der Parameter "Log"/"Kon" ist falsch geschrieben -> OK
Wenn der Parameter "Log" ist -> Ausgabe : Der Parameter "Log"/"Kon" ist falsch geschrieben -> falsch
Wenn der Parameter "Kon" ist -> Ausgabe : Der Parameter "Log"/"Kon" ist falsch geschrieben -> falsch
Die gleichen Ergebnisse erhalte ich wenn ich die Methode so abändere:
Java:
public static void ausgabeListeLogKon(ArrayList<String> liste, String logKon) {
        if (logKon.isEmpty()) {
            LOG.error("Der Parameter \"Log\"/\"Kon\" fehlt");
        } else if (logKon != "Log" || logKon != "Kon") {
            LOG.error("Der Parameter \"Log\"/\"Kon\" ist falsch geschrieben");
        } else if (logKon == "Log") {
            LOG.info("Liste wird im LOG ausgegeben");
            liste.forEach((zeichenkette) -> {
                LOG.info(zeichenkette);
            });
            // Ausgabe in LOG
        } else if (logKon == "Kon") {
            LOG.info("Liste wird auf der Konsole ausgegeben");
            liste.forEach((zeichenkette) -> {
                System.out.println(zeichenkette);
            });
        } // Ausgabe auf Konsole
    } // ausgabeListeLogKon
Jetzt habe ich die IF Anweisen anders andgeordnet
Java:
public static void ausgabeListeLogKon(ArrayList<String> liste, String logKon) {
        if (logKon.isEmpty()) {
            LOG.error("Der Parameter \"Log\"/\"Kon\" fehlt");
        } else if (!logKon.equals("Kon") || !logKon.equals("Log")) {
            LOG.error("Der Parameter \"Log\"/\"Kon\" ist falsch geschrieben");
        } // Leer oder Falsch geschrieben
        if (logKon.equals("Log")) {
            LOG.info("Liste wird im LOG ausgegeben");
            liste.forEach((zeichenkette) -> {
                LOG.info(zeichenkette);
            });
            // Ausgabe in LOG
        } else if (logKon.equals("Kon")) {
            LOG.info("Liste wird auf der Konsole ausgegeben");
            liste.forEach((zeichenkette) -> {
                System.out.println(zeichenkette);
            });
        } // Ausgabe auf Konsole
    } // ausgabeListeLogKon
Wenn der Parameter "" ist -> Ausgabe : Der Parameter "Log"/"Kon" fehlt -> OK
Wenn der Parameter "LoL" ist -> Ausgabe : Der Parameter "Log"/"Kon" ist falsch geschrieben -> OK
Wenn der Parameter "Log" ist -> Ausgabe : Der Parameter "Log"/"Kon" ist falsch geschrieben wird im Log geschrieben und die Liste wird im LOG ausgegeben ? Sollte doch nur die Liste ausgegeben werden?
Wenn der Parameter "Kon" ist -> Ausgabe : Der Parameter "Log"/"Kon" ist falsch geschrieben wird in LOg geschrieben und die Liste wird in der Konsole ausgegeben. Auch hier sollte "Der Parameter "Log"/"Kon" ist falsch geschrieben" nicht in das Log geschrieben werden.

Eigentlich sollten alle If Strukturen funktionieren, aber ich sehe nicht wo das Problem ist. :confused:
Über Hilfe würde ich mich sehr freuen.
Vielen Dank
Mi
 

Thallius

Top Contributor
Überleg doch einfach mal genau wann dieses Aussage zutrifft

Code:
if (!"Log".equals(logKon) || !"Kon".equals(logKon))

Gruß

Claus
 

MiMa

Top Contributor
Überleg doch einfach mal genau wann dieses Aussage zutrifft

Code:
if (!"Log".equals(logKon) || !"Kon".equals(logKon))

Gruß

Claus
OK, gehört ander herum.
Java:
 else if (!logKon.equals("Log") || !logKon.equals("Kon"))
funktioniert auch nicht.

Die Aussage soll zutreffen, wenn logKon nicht "Log" ist oder logKon nicht "Kon" ist.
Das würde bedeuten das "Log" oder "Kon" falsche geschrieben wurde.

Die wird aber auch ausgeführt wenn "Log" oder "Kon" richtig geschrieben wurde.
das irritiert mich.
 
Zuletzt bearbeitet:

JCODA

Top Contributor
Was sagt deiner Meinung nach
Java:
!"Log".equals(logKon) && !"Kon".equals(logKon)
aus?
 

MiMa

Top Contributor
Das der String Log nicht mit der Variablen logKon gleich ist und der String Kon nicht mit der Variablen logKon gleich ist.

In meinem Fall möchte ich prüfen ob "Log" oder "Kon" nicht gleich geschrieben wurde.

Ist es beim vergleichen egal, ob ich erst die Variable oder den String mit dem anderen vergleiche?
 

JCODA

Top Contributor
Kennst du die de'morganschen Gesetze?
Es gilt nicht(A oder B) <=> nicht A und nicht B
In deinem Fall:
!(LogKon=="Log" oder logkon=="Kon") <=> (logkon!="Log" und logkon!="Kon")

Es kommt entscheidend darauf an, wo die Negation steht.
 

MiMa

Top Contributor
Kennst du die de'morganschen Gesetze?
Es gilt nicht(A oder B) <=> nicht A und nicht B
In deinem Fall:
!(LogKon=="Log" oder logkon=="Kon") <=> (logkon!="Log" und logkon!="Kon")

Es kommt entscheidend darauf an, wo die Negation steht.
Ich habe das geändert in
Java:
} else if (!(logKon.equals("Kon") || logKon.equals("Log"))) {
In der Prüfklammer der IF-Anweisung stehen die Bedingungen.
Ich hatte das immer so verstanden, das bei einer oder/und Verknüpfung die komplette Formuliereung mit der Negierung geschrieben werden muss. Die komplette Bedingung zu Klammern und dann negieren, da wäre ich nie drauf gekommen. Aber ich verstehe es. Ich bin kein Informatiker und ich weiss, das manchmal anders Denken angebracht ist. ;)
Danke für die Hilfe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Wie erstelle ich dazu eine Abfrage ob der Button gedrückt wurde? Allgemeine Java-Themen 8
J Mehrfache if-else-Abfrage zusammenfassen Allgemeine Java-Themen 51
L 2 Dimensionale ListArray Abfrage nach einem Wert suchen Allgemeine Java-Themen 5
I Wie kann ich den Wert aus einer If abfrage ausgeben Allgemeine Java-Themen 23
Zeppi NullPointerException in einer if-Abfrage Allgemeine Java-Themen 6
1Raini Java if-Abfrage funktioniert nicht! Allgemeine Java-Themen 3
tom.j85 Exception bei Abfrage von Ländercodes in API? Allgemeine Java-Themen 13
T Fehler bei IF abfrage Allgemeine Java-Themen 8
D Mehrdimensionale Abfrage Allgemeine Java-Themen 15
kodela Binäre Abfrage Allgemeine Java-Themen 12
D MAC Adressen Abfrage Allgemeine Java-Themen 5
J Problem bei Hashmap Key-Abfrage Allgemeine Java-Themen 4
B Swing Hilfe bei Abfrage von Benutzernamen und Passwort Allgemeine Java-Themen 2
J If Abfrage funktioniert nicht Allgemeine Java-Themen 4
B Java Abfrage Netzbetrieb oder Akkubetrieb Allgemeine Java-Themen 1
T Login-Abfrage Allgemeine Java-Themen 3
T Login mit LDAP-Abfrage Allgemeine Java-Themen 3
M Event Handling Tastatur abfrage Allgemeine Java-Themen 5
2 If-Abfrage um Uhrzeit einzuordnen Allgemeine Java-Themen 2
F Java ip abfrage mit Dateiausgabe ? Allgemeine Java-Themen 2
V Java Editor Problem mit ! bei if-Abfrage Allgemeine Java-Themen 5
N Schlüsselworte if abfrage ob linke oder rechte maustaste gedrückt ist Allgemeine Java-Themen 5
H args abfrage vereinfachen Allgemeine Java-Themen 7
P Tastatur abfrage ohne KeyListener Allgemeine Java-Themen 3
E Methoden Server Benutzer abfrage Allgemeine Java-Themen 2
D Internet Abfrage aber mit Warteschleife Allgemeine Java-Themen 6
B Kapselung if-Abfrage bei "MVC-verteilten" Listenern Allgemeine Java-Themen 5
R JNI if abfrage gibt immer false zurück. Allgemeine Java-Themen 7
S if-Abfrage Allgemeine Java-Themen 5
T Wiederholte Abfrage? Allgemeine Java-Themen 5
B abfrage ob file ausgeführt wurde Allgemeine Java-Themen 4
Z Boolean Abfrage gibt kein Boolean zurück, aber warum? Allgemeine Java-Themen 6
P Google Abfrage auslesen Allgemeine Java-Themen 2
MQue Performance Methodenaufruf - if Abfrage Allgemeine Java-Themen 19
W ICQ Status Abfrage mit Java Allgemeine Java-Themen 3
M if - else Abfrage beenden Allgemeine Java-Themen 4
MQue if- Abfrage Allgemeine Java-Themen 4
B Abfrage ob JRE installiert ist, JAR automatisch starten Allgemeine Java-Themen 5
MQue if Abfrage Allgemeine Java-Themen 27
MQue if- Abfrage Allgemeine Java-Themen 26
C Versionsstring Abfrage Allgemeine Java-Themen 7
G Tastatur abfrage Allgemeine Java-Themen 8
D Doppeltverschachtelte if-Abfrage Allgemeine Java-Themen 10
Z mit java htaccess - abfrage bestätigen/umgehen Allgemeine Java-Themen 2
U if Abfrage macht etwas falsch Allgemeine Java-Themen 2
G Problem mit if-Abfrage bei Benutzeingabe Allgemeine Java-Themen 2
P Java Acces Datenbank Problem ! (Brauche eine Abfrage) Allgemeine Java-Themen 5
K Abfrage ob JRE oder JDK auf System installiert ist. Allgemeine Java-Themen 12
T IF Abfrage + YES_NO Option mittels JOptionPane Allgemeine Java-Themen 3
U IF-Abfrage Allgemeine Java-Themen 17
H Java-Abfrage Allgemeine Java-Themen 9
A FileChooser Datei-Überschreiben Abfrage Allgemeine Java-Themen 2
F Java Passwort abfrage Allgemeine Java-Themen 2
S CDDB-Abfrage mit Java unter Linux? Allgemeine Java-Themen 4
L Datenbank Abfrage (Felder&Tabelle nicht fix) in ArrayLis Allgemeine Java-Themen 4
S Integer-splitten für Abfrage. Allgemeine Java-Themen 4
G Abfrage in datenbank Allgemeine Java-Themen 5
F KI / Machine Learning Parameter verschachtelte for Schleifen Allgemeine Java-Themen 2
F KI / Machine Learning Parameter verschachtelte for Schleifen Allgemeine Java-Themen 1
8u3631984 Funktions Parameter mit Lombok "NonNull" annotieren wird in Jacococ Testcoverage nicht herausgefiltert Allgemeine Java-Themen 3
JavaJüngling beliebige Collection die Comperable Elemente enthält als Parameter Allgemeine Java-Themen 37
M Datensatz auf ein bestimmten Parameter einzugrenzen Allgemeine Java-Themen 11
B JAX - RS.... Multiple parameter application/x-www-form-urlencoded.... Allgemeine Java-Themen 6
B Parameter Konstruktor plus rechnen Allgemeine Java-Themen 6
L Die abzuleitende Klasse als Parameter übergeben Allgemeine Java-Themen 4
W Haben Konstruktoren in Java eigentlich immer mindestens einen Parameter? Allgemeine Java-Themen 4
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
F URI mit Parameter klappt nicht Allgemeine Java-Themen 1
H Aufruf eines Web Service anhand übergebenen Parameter Allgemeine Java-Themen 2
temi best practice: Parameter überprüfen, wo? Allgemeine Java-Themen 9
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
I Javaaufruf aus Batch inkl. Parameter (Adminrechte) Allgemeine Java-Themen 2
P Java https proxy (-Dhttps.proxyHost) Start-Parameter funktioniert nicht? Allgemeine Java-Themen 2
Neumi5694 Methoden Generic: Rückgabetyp als Class-Parameter übergeben Allgemeine Java-Themen 3
K Java FX Zu startenden FXML-Controller per Parameter wählen Allgemeine Java-Themen 2
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
T Klassen Parameter weitergabe Allgemeine Java-Themen 1
C Überschreiben mit kontravariante Parameter Allgemeine Java-Themen 13
M Parameter auslesen im Servlet Allgemeine Java-Themen 0
perlenfischer1984 Wann ist ein Parameter Check sinnvoll Allgemeine Java-Themen 7
Neumi5694 Vererbung Parameter muss 2 Bedingungen erfüllen Allgemeine Java-Themen 2
Sogomn Methode als Parameter? Allgemeine Java-Themen 3
T Parameter Allgemeine Java-Themen 6
R Parameter Adapter - Design Allgemeine Java-Themen 1
I Methode verallgemeinern (Methode als Parameter)? Allgemeine Java-Themen 10
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
H Generics als Parameter Allgemeine Java-Themen 1
N [stream-api] Parameter pro Typ zählen Allgemeine Java-Themen 1
OnDemand Maximale Parameter Allgemeine Java-Themen 5
M final vor dem parameter eines Konstruktors Allgemeine Java-Themen 1
S Servlet, per URLConnection Mit String Http Parameter mitsenden Allgemeine Java-Themen 3
M Parameter-Datei einlesen (zeilenweise); Dateiintegrität Allgemeine Java-Themen 7
H JasperReport: Parameter befüllen Allgemeine Java-Themen 7
Joew0815 JList + JTableModel: Parameter der Tabelle übergeben Allgemeine Java-Themen 10
Y Applet/Html - Wie Java-Methode aufrufen, die einen Parameter erwartet? Allgemeine Java-Themen 3
G Polymorphie Funktion als Parameter Allgemeine Java-Themen 8
G Methoden Unterschiedliche viele Parameter Allgemeine Java-Themen 17
F Parameter im Link /jar-Aufruf Allgemeine Java-Themen 12
S OOP Designrichtlinie Parameter Prüfung Allgemeine Java-Themen 7
C char und char-Array als parameter übergeben Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben