假设我使用通用语言编写以下代码:
a = 1
b = 2
IF a == 3 AND b == 2:
do something
ELSE:
do something
如果a == 3为假,则程序不需要检查第二部分,因为对于任何n值,总是结果为假。
与or相同:
a = 1
b = 2
IF a == 1 OR b == 3:
do something
ELSE:
do something
如果a == 1为真,程序就不需要检查b == 3,因为它总是正确的。
我想知道在这些情况下程序是否在第一部分停止。
答案 0 :(得分:1)
很可能取决于语言。我知道在C / C ++中它实际上只检查b == 2,如果a和= 3则在一个和语句的情况下。我对or语句不是肯定的,但我只是通过运行它来检查,我得到的输出表明只有or语句的第一部分执行。我建议您在将来编写自己的样本以测试此类问题。
inline-block
提供以下输出:
#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;
}