Java/C三元运算符

You*_*nes 0 c java conditional-statements

我想将一个代码从if条件转换为三元条件,首先我成功地转换了一个条件,如:

    int minutes=59,hours=23;
// 1) if condition
if (minutes<59)
    minutes++;
else
    minutes=0;

// 2) ternary condition
minutes = (minutes < 59) ? minutes+1  :  0;
Run Code Online (Sandbox Code Playgroud)

现在的问题是当我有多个值来编辑它时,例如:

    int minutes=59,hours=23;
// if condition
if (minutes<59)
    minutes++;
else
{
    minutes = 0;
    if (hours<23)
        hours++;
    else 
        hours=0;
}
Run Code Online (Sandbox Code Playgroud)

你如何看待三元条件?谢谢 :)

Oli*_*rth 8

我的想法是你不应该这样做.

但如果你真的想,你可以这样写:

minutes = (minutes < 59)
        ? (minutes+1)
        : ((hours = (hours < 23) ? (hours+1) : 0), 0);
Run Code Online (Sandbox Code Playgroud)

但不要.

  • 如果"更好"意味着"更难阅读",那么是的. (7认同)
  • `minutes =(minutes <59)?(minutes + 1):((hours =(hours <23)?(hours + 1):0),0);`在没有空格的一行上更好. (3认同)