如何采用此条件语句并在没有 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)];
在我的 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)];