我问自己是否有可能这样做:
condition ? do this && THIS : else;
喜欢:
nb = (nb1 + nb2) > 9 ? (nb1 + nb2) % 10 && nb1 + 1 : 0;
请注意,这只是一个例子,它没有任何意义。
答案 0 :(得分:3)
有一种简单的方法:
condition ? function_that_does_several_things() : else_expr;
另一件事是你可以在列表中收集表达式:
int a = (1,2);
将2
分配给a
。所以你可以试试这个:
condition ? (do_this, and_this) : else_expr;
但我建议反对;很难看到这里发生了什么,很多人在看到这样的代码时会感到困惑,惊讶和沮丧。
答案 1 :(得分:2)
不是"做这个",它"评估这个"。删除条件和" false"路径,你明白了:
nb = (nb1 + nb2) % 10 && nb1 + 1;
所以,是的,你可以这样做,但nb
的值将是逻辑表达式的结果......基本上就是这样:
nb = ((nb1 + nb2) % 10 != 0) && (nb1 + 1 != 0);