0

我正在处理一个 If 语句,我想满足两个条件来忽略循环。起初这似乎很容易,但现在……我不知道。这是我的困境...

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

如果 radButton1 为 false 且 radButton2 为 true,则不会执行“去工作”的困境。难道不应该要求两个条件都为假才能跳过该语句吗?

4

7 回答 7

17

不,它要求它们都为假才能执行该语句。

于 2008-11-25T16:52:40.570 回答
12

不,它需要两个条件都为假才能执行该语句。再读一遍:

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

英文:“如果 radButton1.checked 为假且 radButton2.checked 为假,则将 txtTitle.Text 设置为 'Go to work'”。

如果您想在两个条件都为假时跳过该语句,则否定您的逻辑,如下所示:

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

翻译成英文会这样写:“如果 radButton1.checked 为 true 或 radButton2.checked 为 true,则将文本设置为 'Go to work'”。这意味着如果任何条件为真,它将执行该语句,或者,如果两者都为假,则跳过它。

于 2008-11-25T16:53:05.327 回答
9

假设我有两个变量A名为B

如果 A 和 B 有这些值

A     true    true    false   false
B     true    false   true    false

然后这些操作返回

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

请注意,第二个表中的底部 3 是同一张表中顶部 3 的逻辑对立面(即它们尚未应用)。

于 2008-11-25T17:04:41.140 回答
2

txtTitle.Text ="go to work"在您的示例中,只有两个按钮都为假时,它才会执行代码。因此,一个为真,一个为假,它将跳过该语句。

于 2008-11-25T16:53:49.197 回答
2

与真(或假)比较是完全没有必要的:

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

变成

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

或同样

if( !radButton1.checked || !radButton2.checked ) { ... }
于 2008-11-25T17:36:15.723 回答
0

不,它要求其中一个陈述是错误的才能跳过。看看你的如果:

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

因此,如果条件 1 或条件 2 不为真,则它不会执行。

于 2008-11-25T16:54:30.660 回答
0

我让它工作。我看到它们都需要为假才能执行该语句,对于该语句,满足这两个条件的方法是使用

if(!((radButton1.checked == true)&&(radButton2.checked == true)))
{
    ...
}
于 2008-11-25T17:21:54.270 回答