IF 语句如何与 AND 和 OR 一起使用?
How IF statement works with AND and OR?
假设我有以下通用语言的代码:
a = 1
b = 2
IF a == 3 AND b == 2:
do something
ELSE:
do something
如果 a == 3 为假,则程序不需要检查第二部分,因为对于任何 n 值,结果始终为假。
同理或:
a = 1
b = 2
IF a == 1 OR b == 3:
do something
ELSE:
do something
如果 a == 1 为真,则程序无需检查 b == 3 是否始终为真。
我想知道在这些情况下程序是否在第一部分停止。
这很可能取决于语言。我知道在 C/C++ 中它确实只会检查 b==2 如果 a==3 在 and 语句的情况下。我对 or 语句并不肯定,但我只是通过 运行 检查了这个,我得到的输出表明只有 or 语句的第一部分执行。我建议您通过编写自己的示例来测试将来的此类问题。
#include <stdio.h>
int call_false()
{
printf("CALL FALSE \n\r");
return 0;
}
int call_true()
{
printf("CALL TRUE \n\r");
return 1;
}
int main()
{
printf("Hello World");
int a = 1;
int b = 2;
if( a == call_true() || b == call_false())
{
printf("TRUE \n\r");
}else
{
printf("FALSE");
}
return 0;
}
给出以下输出:
Hello WorldCALL TRUE
TRUE
...Program finished with exit code 0
Press ENTER to exit console.
假设我有以下通用语言的代码:
a = 1
b = 2
IF a == 3 AND b == 2:
do something
ELSE:
do something
如果 a == 3 为假,则程序不需要检查第二部分,因为对于任何 n 值,结果始终为假。
同理或:
a = 1
b = 2
IF a == 1 OR b == 3:
do something
ELSE:
do something
如果 a == 1 为真,则程序无需检查 b == 3 是否始终为真。
我想知道在这些情况下程序是否在第一部分停止。
这很可能取决于语言。我知道在 C/C++ 中它确实只会检查 b==2 如果 a==3 在 and 语句的情况下。我对 or 语句并不肯定,但我只是通过 运行 检查了这个,我得到的输出表明只有 or 语句的第一部分执行。我建议您通过编写自己的示例来测试将来的此类问题。
#include <stdio.h>
int call_false()
{
printf("CALL FALSE \n\r");
return 0;
}
int call_true()
{
printf("CALL TRUE \n\r");
return 1;
}
int main()
{
printf("Hello World");
int a = 1;
int b = 2;
if( a == call_true() || b == call_false())
{
printf("TRUE \n\r");
}else
{
printf("FALSE");
}
return 0;
}
给出以下输出:
Hello WorldCALL TRUE
TRUE
...Program finished with exit code 0
Press ENTER to exit console.