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.