我有下面的等式,我想可能有一种方法可以简化它:
(A, B, C) = (x, y, z), if (0 <= q < 5)
(y, x, z), if (5 <= q < 10)
(z, x ,y), if (10 <= q < 15)
(z, y, x), if (15 <= q < 20)
(y, z, x), if (20 <= q < 25)
(x, z, y), if (25 <= q < 30)
有没有更好的方法来写这个方程的6个条件?
if(0 <= q && q < 1)
A = x; B 0 y; C = z;
else if(1 <= q && q < 2)
...
3条答案
按热度按时间91zkwejq1#
你可以使用switch语句返回一个包含值的对象。这里我使用
record
作为一个不可变类。它也可以是一个常规类。印刷品
q
转换为int
将选择正确的大小写q
的值相关联的对象q
超出范围,将引发异常。mfpqipee2#
假设x、y和z的值在某种程度上是恒定的,您可以创建一个Map,将q值转换为A、B、C的特定赋值。
o2gm4chl3#
让我建议一个简单的数据结构:
然后你就可以像这样接受你的价值观