我正在进行频率分析,我希望它能自动切换字母。我知道要切换到什么,但是你可以使用你的代码:
if(a > b && a > c && a > c) { //code }
有人告诉我,如果a>>我们不会评估剩下的代码。湾这是真的吗?
答案 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