如何采用此条件语句并在没有 if-then 语句的情况下重写它

How to take this conditional statement and rewrite it without if-then statements

在我的 class 项目中,特定方法的正确代码是:

if ((volume % 10) % 6 == 0)
       return 0;
 else if ((volume % 10) % 6 <= 4)
       return 1;
 else
       return 2;

不过最近老师又加了一个条件,就是不能用if语句。 到目前为止我所拥有的是:

return ((volume % 10) % 6)/4 + ((volume % 10) % 6 % 4`);

但是当 ((volume % 10) % 6 % 4) 等于 2 时它不起作用。(它需要等于 1)

我试图通过将其除以 2 来修复它,但是当 ((volume % 10) % 6 % 4) 等于 1 时,它向下舍入为 0

有什么想法吗??

您可以使用三元运算符重写它。健康)状况 ?真表达:假表达。 https://msdn.microsoft.com/en-us/library/ty67wk28.aspx

在下面的代码中,false 将是一个新的三元运算。

 return  (volume % 10) % 6 == 0 ? 0 : ((volume % 10) % 6 
    <= 4 ? 1 : 2 );

怎么样:

return ((k%10)%6 + 3)/4;

讨厌利用漏洞,但会

return ((volume % 10 ) % 6 == 0 :0 ? <the sub expressions>)

工作?

这是我的做法

当您 运行 您的代码从 0...n 时,会出现重复模式 模式是:0,1,1,1,1,2,0,1,1,1

//initialize an array with the pattern. This is for javascript.
var a=[0,1,1,1,1,2,0,1,1,1];
return a[(volume%10)];