如何在 c# 中使用多个 and 语句
本文关键字:and 语句 | 更新日期: 2023-09-27 17:56:49
我正在做一个频率分析的东西,我希望它自动切换字母。我知道要切换到什么,但是您的代码可以像:
if(a > b && a > c && a > c) { //code }
有人告诉我,如果 a> b,它不会评估代码的其余部分。这是真的吗?
当 .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 }
if(a > b && a > c && a > c)
如果a > b
为假,则不会验证a > c
。因为两者都必须为真才能执行代码。但是,如果a > b
为真,那么它也将检查a > c
。
此外,两次a > c
也没有意义。
如果只有一个比较必须为真,则可以使用 ||
运算符。
实际上这
称为短路计算,其中不同的语句之间有 AND 运算符,如果一个语句为 false,C# 运行时会将整个表达式计算为 false,然后忽略其余语句计算。
如果你想计算所有表达式,而不管每个表达式的结果如何,那么使用单个而不是两个&&.它将逐位比较它们,并将强制计算所有语句以确定最终结果。
if(a > b && a > c && a > c)
相反
if(a > b & a > c & a > c)//it will evaluate all the conditions before the final result
有关更多信息,请查看以下内容:链接