Warum ist das eine „so nah und doch so weit“ if-Anweisung?
Frage
Ich arbeite an einer If-Anweisung und ich möchte zwei Bedingungen erfüllen, die Schleife zu ignorieren. Dies schien zunächst einfach, aber jetzt ... Ich weiß es nicht. Das ist mein Dilemma ...
if((radButton1.checked == false)&&(radButton2.checked == false))
{
txtTitle.Text = "go to work";
}
Das Dilemma wird „zur Arbeit gehen“ wird nicht ausgeführt, wenn radButton1 falsch ist und radButton2 ist wahr. Sollte es nicht beiden Bedingungen erfordert, falsch sein, um die Erklärung zu überspringen?
Lösung
Nein, es verlangt, dass sie sowohl zu falsch sein Ausführen in der Erklärung.
Andere Tipps
Nein, erfordert es beiden Bedingungen falsch sein Ausführen die Aussage. Lesen Sie noch einmal:
if ((radButton1.checked == false) && (radButton2.checked == false)) {
txtTitle.Text = "Go to work";
}
In Englisch: „Wenn radButton1.checked falsch und radButton2.checked falsch ist, dann setzen 'Gehen Sie zur Arbeit' die txtTitle.Text zu“.
Wenn Sie die Anweisung überspringen, wenn beide Bedingungen falsch sind dann Ihre Logik negieren, wie folgt aus:
if ((radButton1.checked == true) || (radButton2.checked == true)) {
txtTitle.Text = "Go to work";
}
Diese, auf Englisch übersetzt lesen würde: „Wenn radButton1.checked wahr ist oder radButton2.checked wahr ist, dann den Text auf‚zur Arbeit gehen‘“. Dies bedeutet, dass, wenn eine Bedingung erfüllt ist, wird es die Anweisung auszuführen, oder, wenn beide falsch sind, sie zu überspringen.
Sagen wir, ich habe zwei Variablen namens A
und B
Wenn A und B haben diese Werte
A true true false false
B true false true false
dann diese Operationen zurückkehren
AND true false false false
OR true true true false
XOR false true true false
NAND false true true true
NOR false false false true
XNOR true false false true
Hinweis , dass der Boden 3 in der zweiten Tabelle sind die logischen Gegensätze (das heißt, sie haben nicht angewandt hatten) die Top-3 in der gleichen Tabelle.
, um wahr zu vergleichen (oder falsch) ist völlig unnötig:
if(!((radButton1.checked == true)&&(radButton2.checked == true))) { ... }
wird
if( !(radButton1.checked && radButton2.checked) ) { ... }
oder gleich
if( !radButton1.checked || !radButton2.checked ) { ... }
In Ihrem Beispiel wird nur den txtTitle.Text ="go to work"
Code ausführen, wenn beide Tasten falsch sind. So ein wahr zu sein und ein Wesen falsch es wird die Anweisung überspringt.
Nein. Es erfordert eine dieser Aussagen falsch sein zu überspringen. Schauen Sie sich Ihre wenn:
if (condition1 && condition2) {
doSomething();
}
Also, wenn condition1 OR condition2 nicht wahr ist, dann wird es nicht ausgeführt werden.
Ich habe es zu arbeiten. Ich sehe, dass sie beide müssen falsch sein, um die Anweisung auszuführen, für diese Aussage, die Art und Weise beiden Bedingungen zu erfüllen, ist die Verwendung
if(!((radButton1.checked == true)&&(radButton2.checked == true)))
{
...
}