【问题标题】:Another way of writing If statement in java [duplicate]在java中编写If语句的另一种方法[重复]
【发布时间】:2012-01-23 21:44:27
【问题描述】:

可能重复:
What is the Java ?: operator called and what does it do?

也许这是与此处的其他一些问题重复的问题,但我找不到。

昨天我看到一个人使用?: 编写if 语句的新方法,我不确定它们都是什么意思。

如果有人能指出我的教程或已经回答的问题,我将不胜感激。

【问题讨论】:

  • 不要用太多,没有比嵌套三元运算符差很多的了。
  • @DesmondZhou 哦!我看到很多教授 java 程序员使用这个运算符。事实上,他们甚至在声明变量时使用它:S
  • @iMohammad 是的,这就是您想要使用它的目的,将它用于简洁地分配给变量,但不能替代 if 语句。例如,不要将具有副作用的方法放入其中,也不要嵌套它们。玩得开心!
  • 我以前见过嵌套的三元运算符。他们令人不安。

标签: java


【解决方案1】:

条件运算符,是一种三元运算符

wikipedia - ?:

wikipedia - ternary operation

【讨论】:

【解决方案2】:

这就是所谓的三元运算符,它是一种很可爱的编写 IF 语句的方式,虽然有时难以阅读。

   if ( x == 3) {
      do-magic
   }
    else {
      do-other-magic
   }

会这样表达:

   x == 3 ? do-magic : do-other-magic

【讨论】:

  • 男人告诉我。因为这个三元运算符,我没看懂整个代码
  • 所以? 仅表示if
  • 基本上,是的。正如@ExtremeCoder 详述的那样,它最常用于赋值,但有时也可以用于逻辑,其方式与 IF 语句大致相同。等到您开始看到嵌套的三元运算符!
【解决方案3】:

(声明)?真:假

伪代码示例:a = (5 > 3) ? 1 : 0

如果陈述为真,a 将为 1(它是),否则为 0。

【讨论】:

    【解决方案4】:

    这是一个三元运算符。一般形式:

    expr1 ? expr2 : expr3
    

    如果expr1 为真,则返回结果为expr2,否则为expr3。示例:

    Object obj = (obj != null) ? obj : new Object();
    

    如果它是null,则可以轻松初始化对象。

    【讨论】:

      【解决方案5】:
      (condition) ? (what happens if true) : (what happens if false);
      

      使用示例:

      int a = 1;
      int b = (a == 1) ? 2 : (a + 1);
      

      【讨论】:

        猜你喜欢
        • 2012-06-22
        • 2011-12-15
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2018-08-01
        • 2021-01-02
        • 2011-04-14
        相关资源
        最近更新 更多