zoukankan      html  css  js  c++  java
  • 关于C# 中的布尔运算符 "&" "|” 与 其类似的条件布尔运算符 "&&" "||" 区别说明。

    运算符使用说明如下:

     分隔符 ————————————————————————————

    分隔符 ————————————————————————————

      上述两个运算符的结果与&和 | 完全相同,但得到结果的方式有一个重要区别:其性能比较好。两者都是检查第一个操作数的值(表2中的var2),再根据该操作数的值进行操作,可能根本就不处理 第二个操作数(表42中的var3)。

      如果&&运算符的第一个操作数是 false,就不需要考虑第二个操作数的值了,因为无论第二个操作数的值是什么,其结果都是 false。同样,如果第一个操作数是 true,|| 运算符就返回 true 后, 无需考虑第二个操作数的值。但上面的&和 | 运算符却不是这样。它们总是要计算两个操作数。

      在大量使用这些运算符的应用程序中这表现得尤为明显。作为一个规则,尽可能使用&&和 || 运算符。这些运算符有时用于比较复杂的情形,例如,只有第一个操作数包含某个值时,才计算第二个操作数:

            var1 = (var2 != 0) && (var3 / var2 > 2);

      如果 var2 是0,则 var3 除以 var2 就会导致“除 0 错误”,或者把 var1 定义为无穷大(对于某些类型如 float 来说,可能出现后一种情形,也是可以检测到的)

       总结:因为操作数的计算是有条件的,如果使用&&和 || 运算符来代替&和 |,性能会有一定提高。

  • 相关阅读:
    ACM ICPC 2008–2009 NEERC MSC A, B, C, G, L
    POJ 1088 滑雪 DP
    UVA 11584 最短回文串划分 DP
    POJ 2531 Network Saboteur DFS+剪枝
    UVa 10739 String to Palindrome 字符串dp
    UVa 11151 Longest Palindrome 字符串dp
    UVa 10154 Weights and Measures dp 降维
    UVa 10271 Chopsticks dp
    UVa 10617 Again Palindrome 字符串dp
    UVa 10651 Pebble Solitaire 状态压缩 dp
  • 原文地址:https://www.cnblogs.com/JesseP/p/9796498.html
Copyright © 2011-2022 走看看