当前位置: 首页 > 面试题库 >

为什么if语句中的表达式顺序很重要

魏澄邈
2023-03-14
问题内容

假设我有一个IF条件:

if (A || B) 
    ∧
    |
    |
   left
{ 
   // do something  
}

现在假设那A很可能会收到一个真实的值B,为什么我要关心左边的那个?

如果将它们都放在IF方括号中,那么我(作为代码的程序员)知道双方都是需要的。

问题是,我的教授在他的演讲笔记上写道,我应该在左边加上“更可能的变量以得到一个真”。

有人可以解释一下好处吗?好吧,我把它放在左边…我正在获得什么?运行 ?


问题答案:

它不只是在左侧选择最可能的条件。您也可以在左侧设置一个安全门卫,这意味着您只能下一个订单。考虑

if (s == null || s.length() == 0) // if the String is null or empty.

您不能在此处交换订单,因为第一个条件可以防止第二个条件抛出NPE。

同样,您可以拥有

if (s != null && s.length() > 0) // if the String is not empty

选择最有可能为真||或为假的原因&&是微优化,以避免第二个表达式中求值的成本。这是否转化为可衡量的性能差异尚待商.。



 类似资料:
  • 本文向大家介绍表达式和语句有什么区别?如何把语句转换为表达式?相关面试题,主要包含被问及表达式和语句有什么区别?如何把语句转换为表达式?时的应答技巧和注意事项,需要的朋友参考一下 简单的说来,表达式(Expression)是语句(Statement)的子集,表达式一定会返回一个值,而语句不会。 比如定义变量、返回语句都属于语句,而逻辑判断、方法调用、赋值都属于表达式。 支持语句的地方都支持表达式,

  • 问题内容: 我认为Maven依赖关系的顺序之前无关紧要,并认为这是它的一个优点。这是我以前的依赖项: 它运作良好,今天我要把对弹簧的依赖移到最底层,以便与那些球衣相关的东西可以在一起。但是后来我再也无法正常工作了,我的码头抱怨道: 那真的很令人困惑,所以我是否需要考虑依赖顺序?我怎么知道正确的顺序? 问题答案: 依赖关系的顺序确实很重要,因为从2.0.9版开始,Maven如何解决传递依赖关系。文档

  • Some people, when confronted with a problem think; I know, I’ll use regular expressions. Now they have two problems. — Jamie Zawinski 你可以在 if 语句中使用另一种类型的表达式,即 正则表达式(regular expression)。 正则表达式是一种使用模式匹配

  • 问题内容: 最近,我一直在设计响应速度更快的网站,并且经常使用CSS媒体查询。我注意到的一种模式实际上是定义媒体查询的顺序。我没有在每个浏览器中都进行过测试,只是在Chrome上进行了测试。有这种行为的解释吗?有时,当您的网站无法正常运行时,它会令人沮丧,并且您不确定这是查询还是编写查询的顺序。 这是一个例子: HTML CSS: 但是,如果我最后一次为1024x600编写查询,浏览器将忽略它,并

  • 问题内容: 如果您有一个if语句,其中对多个变量或函数进行了评估,那么按什么顺序对其进行评估? 在这种特定情况下,是将foo相对于5评估,然后将6相对于吧(从左至右)进行评估,还是将其从右至左进行评估?我假设a和以相同顺序求值。 问题答案: 如果第一个是,则将首先评估left子句,然后评估第一个。 这就是为什么您可以执行以下操作的原因: 没有破坏。 相反,对于子句,只有第一个为:时,将评估righ

  • 我理解,不可能用有限的位数来表示所有数字的任意精度,对浮点数进行天真的比较是不可取的。但我想,如果我把许多数字加在一起,我添加它们的**顺序**并不重要。 为了测试这个预测,我创建了一个随机数向量并计算它们的和,然后对向量排序并再次计算和。通常,这两个总数不匹配!这是我的代码(包含在下面)的一个问题,是浮点算法的一个缺点,还是可以通过切换编译器等来解决的问题。?