int foo = bar > baz ? bar : baz;
int foo = someBoolean ? bar : baz;
int foo = (bar > baz) ? bar : baz;
int foo = (someBoolean) ? bar : baz;
int foo = (bar > baz) ? bar : baz;
int foo = someBoolean ? bar : baz;
我无法决定我应该使用这三种中的哪一种。我可以:
在以下示例中不使用括号并冒不良可读性的风险:
min[0] = min[0] > pos.x ? pos.x : 0;
始终使用括号,但有风险 短语中有些丑陋的代码:
setValue(val + scrollBar.getBlockIncrement() * ((scrollsUp) ? -1 : 1));
介于两者之间并在有空格时使用括号 在条件中,但如果条件只是一个布尔值 变量:
min[0] = (min[0] > pos.x) ? pos.x : 0;
setValue(val + scrollBar.getBlockIncrement() * (scrollsUp ? -1 : 1));
答案 0 :(得分:5)
Oracles Code Conventions
陈述以下内容
return (condition ? x : y);
..还有
if (a == b && c == d) // AVOID!
if ((a == b) && (c == d)) // RIGHT
...自由翻译为
return (someBoolean ? x : y);
return ((x > y) ? x : y);
..虽然在个人意见上我不介意放宽一两个括号。 最后,它仍然是一个主观问题。如果您觉得添加/删除括号提供了更好的可读性,那么请务必随意这样做。
答案 1 :(得分:1)
清晰度对我的情况有所规定,所以我选择:
int foo = (bar > baz) ? bar : baz;
int foo = (someBoolean) ? bar : baz;
答案 2 :(得分:0)
我个人更喜欢案例2:
int foo = (bar > baz) ? bar : baz;
int foo = (someBoolean) ? bar : baz;
条件在括号内。
这段代码
int foo = bar > baz ? bar : baz;
会影响可读性但会完美编译。 buti认为将测试条件放在括号中会更好以便于阅读。 但是我会说它主要取决于人的编码风格。非正常的,所有三种情况都可以正常工作:)