【发布时间】:2015-12-26 10:02:09
【问题描述】:
所以有 for 循环等是很常见的,但是当我们有一个三元示例时,例如
int answer = (a < b) ? b : a;
我们如何在 之后再放一个三元组?就像一个增强的三元组
问题:
给定两个 int 值,返回较大的值。但是,如果两个值除以 5 时具有相同的余数,则返回较小的值。但是,在所有情况下,如果两个值相同,则返回 0。注意:% "mod" 运算符计算余数,例如7 % 5 等于 2。
maxMod5(2, 3) → 3
maxMod5(6, 2) → 6
maxMod5(3, 2) → 3
我的想法:
public int maxMod5(int a, int b) {
int answer = ((a < b) ? (a % 5 == b % 5) ? a : b) : a;
}
如果a
【问题讨论】:
-
a < b ? (a % 5 == b % 5 ? a : b) : a;没测试,试试看。 -
仅仅因为你可以并不意味着你应该。还要考虑生成代码的可读性。
-
同意@adrianbanks 100%。明天你将无法理解该代码。甚至没有谈论过其他人理解该代码。
if-statment 的存在是有原因的。 -
我同意,你不应该嵌套三元运算符。但是,如果您参加 OCA 考试,知道如何读/写它们会很有用!