If statement IF语句如何与AND和OR一起工作?

If statement IF语句如何与AND和OR一起工作?,if-statement,logical-operators,boolean-logic,If Statement,Logical Operators,Boolean Logic,假设我有以下通用语言代码: a = 1 b = 2 IF a == 3 AND b == 2: do something ELSE: do something 如果a==3为false,则程序不需要检查第二部分,因为对于任何n值,结果总是false 以与或相同的方式: a = 1 b = 2 IF a == 1 OR b == 3: do something ELSE: do something 如果a==1为真,程序就不需要检

假设我有以下通用语言代码:

a = 1
b = 2
IF a == 3 AND b == 2:
  do something
ELSE:
  do something
如果a==3为false,则程序不需要检查第二部分,因为对于任何n值,结果总是false

以与或相同的方式:

    a = 1
    b = 2
    IF a == 1 OR b == 3:
      do something
    ELSE:
      do something
如果a==1为真,程序就不需要检查b==3,因为b始终为真


我想知道在这些情况下,程序是否在第一部分停止。

这很可能取决于语言。我知道在C/C++中,在and语句中,如果a==3,它实际上只会检查b==2。我对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;
}

这取决于您使用的语言。在这种情况下,大多数编程语言都不会计算条件的第二部分,但有些语言可能会这样做。您是否有任何说明这一点的参考/文档?我找不到你正在使用的语言,程序甚至可能不做第一次检查,因为如果代码被编译,整个if-else可以与
a
b
一起优化,这样程序中只剩下一个
做某事
Hello WorldCALL TRUE                                                                                                                                                              
TRUE                                                                                                                                                                              


...Program finished with exit code 0                                                                                                                                              
Press ENTER to exit console.