有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

c#条件运算符vs if-then-else

如果我想实现一些可以用这两种方法实现的条件代码。那么哪种方法更好呢或者如果。。然后否则呢


共 (3) 个答案

  1. # 1 楼答案

    如果不完全相同,它们也非常接近。即使字节码也有细微差别。您可以随时进行性能测试以确保

    要检查字节码,请签出javap and jad

  2. # 2 楼答案

    视情况而定。通常,您希望活动的主要流程 在代码的结构中表示。如果关键点 算法的关键是初始化变量x,然后 最好的解决方案是使用条件运算符:

    x = condition ? f1() : f2();
    

    如果决策是理解问题的关键 继续,那么你会更喜欢if。实际上,这意味着 当两者都合理可行时,您将使用?:。这个 关键是“合理”——如果您发现您正在使用 子表达式中的逗号运算符,其中 副作用,那么使用?:可能是不“合理的”

    编辑:

    当您使用?:运算符时,除了最简单的 在某些情况下,您应该完全按照if的格式对其进行格式化,例如:

    x = condition
        ? complex_expression_1
        : complex_expression_2;
    

    我经常这样做。(有一种特殊情况,我推 它:如果我能将整个函数缩减为一个返回 陈述我仍然不允许逗号的副作用 运算符,但我有时会使用更复杂的表达式 否则我就不会这么做了。)

  3. # 3 楼答案

    它依赖于编译器,但在现代编译器中,if-else和三元运算符并没有区别。不要相信“如果我使用条件运算符,编译器将始终生成更高效的代码”