在Java中将负数转换为0的基本问题

Jam*_*ton 2 java

我正在处理一本关于类的工作簿中的问题,其中一部分告诉我将输出中弹出的负数设置为零以便理解它。是否可以在不使用 if/else 语句或条件的情况下完成此操作?我想只使用打印格式、算术和类方法来做到这一点。不导入任何不符合java标准的东西。这可能吗,我错过了一些简单的东西吗?

Ell*_*sch 8

您可以将Math.max(int, int)- 与参数一起使用n,0当值为n负时将导致0, 否则n。

value = Math.max(0, value); // value is 0 if negative, otherwise value
Run Code Online (Sandbox Code Playgroud)

或者,如果使用 Java 8+,Integer.max(int, int)则结果相同

value = Integer.max(0, value);
Run Code Online (Sandbox Code Playgroud)

value出于示例目的更新显示的原始内容(完全可以在此处内联使用任一解决方案)。

  • @itwasntme 问题说*“**没有**使用if/else语句或**条件**”*。的`?:` 被称为 [**条件** 运算符](https://docs.oracle.com/javase/specs/jls/se13/html/jls-15.html#jls-15.25),所以 Elliott 做得对通过不将其作为答案中的选项包含在内。 (2认同)
  • @itwasntme 问题说*“不导入任何不符合java标准的东西”*,所以推荐第三方库也不是。——至于该评论的其余部分,请保持理性。如果有人被告知他们不允许使用循环,他们必须使用流,那么你会回答说这是不可能的,因为流框架在内部使用循环?当然不是,那么为什么说不能使用 max() 方法,因为它内部使用了条件呢?这些限制是针对自定义用户编写的代码,所以不,我想说你也不能编写自己的“max”。 (2认同)