如何在c#中有多个和语句

时间:2014-04-06 09:35:33

标签: c# operators

我正在进行频率分析,我希望它能自动切换字母。我知道要切换到什么,但是你可以使用你的代码:

if(a > b && a > c && a > c) { //code }

有人告诉我,如果a>>我们不会评估剩下的代码。湾这是真的吗?

3 个答案:

答案 0 :(得分:1)

当.Net计算&&时,它使用 短路 :它检查第一个表达式(a > b)和 如果 false 什么都不做,如果 true 检查第二个(a > c)等,那么你的情况

  if(a > b && a > c && a > d) { //code }

等于

  if (a > b) 
    if (a > c)
      if (a > d) { //code }

答案 1 :(得分:0)

if(a > b && a > c && a > c)

如果a > b为假,则无法验证a > c。因为两者必须是真的才能执行代码。但是,如果a > b为真,那么它也会检查a > c

此外,a > c两次没有任何意义。

如果只需要进行其中一项比较,则可以使用||运算符。

答案 2 :(得分:0)

实际上这称为短路评估,其中不同的语句之间有AND运算符,如果一个语句为false,则C#运行时将整个表达式评估为false,然后忽略其余的语句评估。

如果你想要评估所有表达式而不管每个表达式的结果如何,那么使用单个&而不是两个&&amp ;.它将逐位进行比较,并强制评估所有语句以确定最终结果。

if(a > b && a > c && a > c)

代替

if(a > b & a > c & a > c)//it will evaluate all the conditions before the final result

有关详情,请查看: LINK