if/else逻辑使用NULL
if/else logic using NULL
我不确定我是否理解使用 = NULL 和 != NULL 的条件。
这是
if (somethin->example == NULL)
{
do task A
return;
}
else
{
do task B
}
和这个一样吗?
if (somethin->example != NULL)
{
do task B
}
else
{
do task A
return;
}
是的。它们是相同的,唯一不同的是比较顺序(is NULL vs. is not NULL)
以及根据写入的条件和满足的条件在 if 语句下面的操作块的顺序。
if (x == y) {
do(x);
} else {
do(y);
}
与
相同
if (x != y) {
do(y);
} else {
do(x);
}
因此不同之处在于,在第一个样本中我们评估 x 等于 y,因此优先级为“等于”,而在第二个样本中我们评估 x 不等于 y,因此优先级发生“不等于”。
是的,它们是等价的。
==
是 !=
的倒数。如果您同时反转条件并交换 if
和 else
块,则两个更改会抵消。这些是等价的:
if (a)
{
foo();
}
else
{
bar();
}
和
if (!a)
{
bar();
}
else
{
foo();
}
我不确定我是否理解使用 = NULL 和 != NULL 的条件。
这是
if (somethin->example == NULL)
{
do task A
return;
}
else
{
do task B
}
和这个一样吗?
if (somethin->example != NULL)
{
do task B
}
else
{
do task A
return;
}
是的。它们是相同的,唯一不同的是比较顺序(is NULL vs. is not NULL) 以及根据写入的条件和满足的条件在 if 语句下面的操作块的顺序。
if (x == y) {
do(x);
} else {
do(y);
}
与
相同if (x != y) {
do(y);
} else {
do(x);
}
因此不同之处在于,在第一个样本中我们评估 x 等于 y,因此优先级为“等于”,而在第二个样本中我们评估 x 不等于 y,因此优先级发生“不等于”。
是的,它们是等价的。
==
是 !=
的倒数。如果您同时反转条件并交换 if
和 else
块,则两个更改会抵消。这些是等价的:
if (a)
{
foo();
}
else
{
bar();
}
和
if (!a)
{
bar();
}
else
{
foo();
}