Perché è un'affermazione "così vicina ma così lontana" se?
Domanda
Sto lavorando su un'istruzione If e voglio soddisfare due condizioni per ignorare il ciclo. All'inizio sembrava facile, ma ora ... non lo so. questo è il mio dilemma ...
if((radButton1.checked == false)&&(radButton2.checked == false))
{
txtTitle.Text = "go to work";
}
Il dilemma è " vai al lavoro " non viene eseguito se radButton1 è falso e radButton2 è vero. Non dovrebbe richiedere che entrambe le condizioni siano false per saltare l'affermazione?
Soluzione
No, richiede che siano entrambi falsi per eseguire la dichiarazione.
Altri suggerimenti
No, richiede che entrambe le condizioni siano false per eseguire la dichiarazione. Leggi di nuovo:
if ((radButton1.checked == false) && (radButton2.checked == false)) {
txtTitle.Text = "Go to work";
}
In inglese: " Se radButton1.checked è falso E radButton2.checked è falso, impostare txtTitle. Testo in "Vai al lavoro" " ;.
Se vuoi saltare l'affermazione quando entrambe le condizioni sono false allora nega la tua logica, in questo modo:
if ((radButton1.checked == true) || (radButton2.checked == true)) {
txtTitle.Text = "Go to work";
}
Questo, tradotto in inglese, reciterebbe: " Se radButton1.checked è vero O radButton2.checked è vero, quindi imposta il testo su "Vai al lavoro" " ;. Ciò significa che se una qualsiasi condizione è vera, eseguirà l'istruzione o, se entrambe sono false, per saltarla.
Supponi di avere due variabili denominate A
e B
Se A e B hanno questi valori
A true true false false
B true false true false
quindi queste operazioni ritornano
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
Si noti che i 3 inferiori nella seconda tabella sono gli opposti logici (ovvero NON sono stati applicati) dei primi 3 nella stessa tabella.
il confronto con vero (o falso) è del tutto superfluo:
if(!((radButton1.checked == true)&&(radButton2.checked == true))) { ... }
diventa ??p>
if( !(radButton1.checked && radButton2.checked) ) { ... }
o ugualmente
if( !radButton1.checked || !radButton2.checked ) { ... }
Nel tuo esempio eseguirà SOLO il codice txtTitle.Text = " vai a lavorare "
se ENTRAMBI i pulsanti sono falsi. Quindi uno che è vero e uno che è falso salterà l'affermazione.
No. Richiede che una di quelle affermazioni sia falsa da saltare. Guarda il tuo if:
if (condition1 && condition2) {
doSomething();
}
Quindi, se condition1 OR condition2 non è vero, non verrà eseguito.
L'ho fatto funzionare. Vedo che entrambi devono essere falsi per eseguire l'affermazione, per tale affermazione, il modo per soddisfare entrambe le condizioni è utilizzando
if(!((radButton1.checked == true)&&(radButton2.checked == true)))
{
...
}