Pergunta

Eu estou trabalhando em uma instrução If e quero satisfazer duas condições a ignorar o loop. Este parecia fácil no início, mas agora ... eu não sei. este é o meu dilema ...

if((radButton1.checked == false)&&(radButton2.checked == false))
{
    txtTitle.Text = "go to work";
}

O dilema é "ir trabalhar" não é executado se radButton1 é falso e radButton2 é verdade. não deve exigir tanto as condições para ser falso, a fim de ignorar a declaração?

Foi útil?

Solução

Não, não os obriga a ser ambos falsos para Executar o comunicado.

Outras dicas

Não, ele requer ambas as condições para ser falso para executar o comunicado. Leia novamente:

if ((radButton1.checked == false) && (radButton2.checked == false)) {
    txtTitle.Text = "Go to work";
}

Em Inglês: "Se radButton1.checked é falso e radButton2.checked é falsa, em seguida, definir o txtTitle.Text para "ir trabalhar".

Se você quiser pular a declaração quando ambas as condições são falsas, em seguida, negar a sua lógica, como este:

if ((radButton1.checked == true) || (radButton2.checked == true)) {
    txtTitle.Text = "Go to work";
}

Esta traduzida em Inglês seria: "Se radButton1.checked é verdadeira ou radButton2.checked é verdade, então definir o texto para" ir trabalhar". Isto significa que se qualquer condição for verdadeira, ele irá executar a instrução, ou, se ambas são falsas, ignorá-lo.

Digamos que eu tenha duas variáveis ??chamado A e B

Se A e B têm esses valores

A     true    true    false   false
B     true    false   true    false

, em seguida, essas operações retornar

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

Note que o fundo 3 na segunda tabela são os opostos lógicos (ou seja, eles não tinham aplicados) do top 3 na mesma tabela.

comparando com verdadeiro (ou falso) é totalmente desnecessária:

if(!((radButton1.checked == true)&&(radButton2.checked == true))) { ... }

se torna

if( !(radButton1.checked && radButton2.checked) ) { ... }

ou igualmente

if( !radButton1.checked || !radButton2.checked ) { ... }

No seu exemplo ele só irá executar o código txtTitle.Text ="go to work" se ambos os botões são falsas. Então, sendo um verdadeiro e um ser falsa, salta o comunicado.

No. Ela exige uma daquelas afirmações ser falsa para pular. Olhe para o seu caso:

if (condition1 && condition2) {
    doSomething();
}

Então, se condition1 OU condition2 não é verdade, então ele não será executado.

Eu tenho que trabalhar. Vejo que ambos necessidade de ser falsa para executar a instrução, para que a declaração, a maneira de satisfazer as duas condições é usando

if(!((radButton1.checked == true)&&(radButton2.checked == true)))
{
    ...
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top