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

时间:2015-09-30 23:56:02

标签: algorithm conditional

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

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`);

然而它不起作用,((体积%10)%6%4)等于2.(它需要等于1)

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

任何想法??

4 个答案:

答案 0 :(得分:4)

怎么样:

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

答案 1 :(得分:2)

继承人我会怎么做

从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)];

答案 2 :(得分:-1)

您可以使用三元运算符重写它。条件? true表达式:false表达式。 https://msdn.microsoft.com/en-us/library/ty67wk28.aspx

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

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

答案 3 :(得分:-1)

讨厌使用漏洞,但

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

工作?