If statement 否则,如果条件相同

If statement 否则,如果条件相同,if-statement,language-agnostic,logic,If Statement,Language Agnostic,Logic,出于好奇,当我为的else if调用相同的条件时,当条件1得到满足时,部分代码是否仍会执行?这是否因编程语言而异?否,第二个条件永远不会在任何语言中执行 但是,如果Condition1在第一个条件中以某种方式计算为false,在第二个条件中计算为true,则将调用第二个条件。例如: if (Condition1) { dothis; } else if (Condition1) { dothat; } 否,第二个条件永远不会以任何语言执行 但是,如果Condition1在第一个

出于好奇,当我为
的else if
调用相同的条件时,当
条件1
得到满足时,部分代码是否仍会执行?这是否因编程语言而异?

否,第二个条件永远不会在任何语言中执行

但是,如果
Condition1
在第一个条件中以某种方式计算为
false
,在第二个条件中计算为
true
,则将调用第二个条件。例如:

if (Condition1)
{
    dothis;
}
else if (Condition1)
{
    dothat;
}

否,第二个条件永远不会以任何语言执行

但是,如果
Condition1
在第一个条件中以某种方式计算为
false
,在第二个条件中计算为
true
,则将调用第二个条件。例如:

if (Condition1)
{
    dothis;
}
else if (Condition1)
{
    dothat;
}

第二个
if
紧跟在一个
else
之后–因此,只有在第一个
if
未成功时才会执行。因此——没有;将不执行的
点。所有(理智的)编程语言都这样做


但是,一些编程语言对
else if
有特殊的构造,您必须将其作为一个语句来编写,根据语言的不同,可以将其称为
elif
elsif
ElseIf

如果
紧跟在
else
之后,因此,只有当第一个
未成功时,才会执行该命令。因此——没有;将不执行的
点。所有(理智的)编程语言都这样做


然而,一些编程语言对一个
else if
,有特殊的构造,你必须把它写成一个语句,根据语言的不同,不同的语句被称为
elif
elsif
ElseIf

你写的基本上等同于

<?php
$var = true;
function condition() {
    global $var;
    $var = !$var;
    return $var;
}

if(condition()) {
    echo "Conditional 1";
} elseif(condition()) {
    echo "Conditional 2";
}

所以不,它永远不会被调用。

你写的基本上等同于

<?php
$var = true;
function condition() {
    global $var;
    $var = !$var;
    return $var;
}

if(condition()) {
    echo "Conditional 1";
} elseif(condition()) {
    echo "Conditional 2";
}

因此不会,它将永远不会被调用。

因为
条件1
计算为
True
将调用
if
的“dothis”,并跳过
else if
。如果您想调用
dothis
dothat
,那么您将有两个具有相同
Condition1
If
语句,或者将
dothis
dothat
放在一个
If
语句下。这是我在我使用的计算机编程语言中看到的

Python示例

if(Condition1)
{
  dothis;
}
else
{
  if(Condition1)
  {
    dothat;
  }
}

由于
Condition1
的计算结果为
True
if
的“dothis”将被调用,并跳过
else if
。如果您想调用
dothis
dothat
,那么您将有两个具有相同
Condition1
If
语句,或者将
dothis
dothat
放在一个
If
语句下。这是我在我使用的计算机编程语言中看到的

Python示例

if(Condition1)
{
  dothis;
}
else
{
  if(Condition1)
  {
    dothat;
  }
}
虽然每个if-else语句最多执行一个分支,但在“条件”包含副作用的情况下,执行的分支可能并不总是
if
分支

例如,考虑由“条件”表达式引入的副作用。

b = 2
if b == 2:
    print "Hello"
elif b == 2:
    print "World"
... 
Hello
只执行了一个分支(“2”),但在这两种情况下使用了相同的“条件”。由于这些原因,在条件句中产生副作用是有问题的


1在所有现代主流语言中,if-else的条件都是“按需”和“按顺序”评估的。因此,不管其他副作用如何,执行条件计算为true的第一个分支,并且它是唯一执行的分支。

虽然每个if-else语句最多执行一个分支,但在“条件”包含副作用的情况下,执行的分支可能并不总是
if
分支

例如,考虑由“条件”表达式引入的副作用。

b = 2
if b == 2:
    print "Hello"
elif b == 2:
    print "World"
... 
Hello
只执行了一个分支(“2”),但在这两种情况下使用了相同的“条件”。由于这些原因,在条件句中产生副作用是有问题的



1在所有现代主流语言中,if-else的条件都是“按需”和“按顺序”评估的。因此,不管其他副作用如何,执行条件评估为true的第一个分支,并且它是唯一执行的分支。

有些人会随身携带一个牛戳来解决类似的问题。:)@赵或装有岩盐的猎枪;-)有些人为了解决这样的案件,在附近放了一根牛鞭@赵或装有岩盐的猎枪;-)