我正在处理有关类的工作簿中的一个问题,其中的一部分告诉我将输出中弹出的负数设置为零,以使其有意义。是否可以不使用if / else语句或条件语句来完成此操作?我只想通过使用打印格式,算术和类方法来做到这一点。请勿导入Java不标准的任何内容。这可能吗,我想念一些简单的事情吗?
答案 0 :(得分:8)
您可以使用n
和0
的{{3}}-参数n
为负值时,将导致{{1 }},否则为0
。
n
或者,如果使用Java 8+,则Math.max(int, int)
可获得相同的结果
value = Math.max(0, value); // value is 0 if negative, otherwise value
出于示例目的更新显示的原始value = Integer.max(0, value);
(完全有可能在此内联使用任一解决方案)。
答案 1 :(得分:0)
三元运算符是可能的。无需导入。
尝试一下number <= 0 ? 0 : number
当然,您必须根据使用情况对其进行微调,但这很简单。
您可以在此处了解有关Java三元运算符的更多信息:-https://www.baeldung.com/java-ternary-operator
编辑:Eliott的解决方案更加优雅。我会让这个答案。 :)
答案 2 :(得分:0)
因此,我不确定您使用的是整数还是双精度数,但是这里的基本思想可以采用任何一种方法进行修改。确实,您可以使用数学。
(n+Math.abs(n))/2
(或者可能是/2.0,根据情况,您可以使用它)可以解决问题。其中n为2的正数,n等于2。其中n为负,n + Math.abs(n)为0,2上的0仍为0。