Java Program to Check if a Number is Positive or Negative

17 Mar 2025 | 6 分钟阅读

在本节中,我们将编写 Java 程序来检查一个数字是正数还是负数。我们使用了以下几种方法来检查数字是正数、负数还是零

  • 使用关系运算符
  • 使用 Math.signum() 方法
  • 使用 Integer.signum() 方法
  • 使用位移运算符
  • 使用 ArrayList

使用关系运算符

为了检查一个数字是正数还是负数,我们在 Java 程序中实现了以下逻辑。

  • 如果 number>0,则该数字为正数
  • 如果 number<0,则该数字为负数
  • 如果一个数字既不是正数也不是负数,则该数字等于 0

让我们在一个 Java 程序中使用 if-else 语句来实现上述逻辑。

在下面的程序中,我们初始化了一个数字,并使用 if-else 语句来检查该数字是正数还是负数。

CheckPositiveOrNegativeExample1.java

输出

The number is positive.

在下面的程序中,我们从用户那里获取一个数字,并使用 if-else 语句来检查该数字是正数还是负数。

CheckPositiveOrNegativeExample2.java

输出 1

Enter a number: 23
The number is positive.

输出 2

Enter a number: -499
The number is negative.

输出 3

Enter a number: 0
The number is zero.

使用 Math.signum() 方法

还有一种替代方法可以检查一个数字是正数还是负数。Java Math提供了 signum() 方法来检查一个数字是正数还是负数。它是一个静态方法,接受一个 double 类型的参数。

语法

其中 d 是一个参数,将返回其符号。它返回参数的符号函数,如下所示

0.0: 如果参数是 0。
1.0: 如果参数 > 0。
-1.0: 如果参数 < 0。

特殊情况

NaN: 如果参数是 NaN。

参数本身: 如果参数是正零或负零。

这是一个重载方法,因此 Math 类还提供了一个接受 float 值的 signum() 方法,用于检查一个数字是正数还是负数。

语法

让我们在一个 Java 程序中使用 signum() 方法。

CheckPositiveOrNegativeExample3.java

输出

Enter a number you want to check: -98.6
-1.0

使用 Integer.signum() 方法

Java Integer也提供了 signum() 方法来检查一个数字是正数还是负数。它是一个静态方法,接受一个 integer 类型的参数。

语法

其中 i 是一个参数,将返回其符号。它返回参数的符号函数,如下所示

参数,如下所示
0: 如果参数是 0。
1: 如果参数 > 0。
-1: 如果参数 < 0。

让我们在一个 Java 程序中使用 Integer.signum() 方法。

CheckPositiveOrNegativeExample4.java

输出 1

Enter a number you want to check: 99
1

输出 2

Enter a number you want to check: -99
-1

输出 3

Enter a number you want to check: 0
0

使用位移运算符

在 Java 中,整数以 2 的补码形式存储。我们知道任何负数的最高位是 1,而任何其他数字的最高位是 0。

在下面的程序中,位移运算符 (num>>31) 将最高位复制到所有其他位。因此,负数变为 11111111 11111111 11111111 11111111,而正数或零变为 00000000 00000000 00000000 00000000。运算符 & 将最低位设置为 0。因此,组合 [(num >> 31) & 1] 只读取 num 的最高位。请注意,它将 0 视为正数。

CheckPositiveOrNegativeExample5.java

输出 1

Enter a number you want to check: -98
Negative

输出 2

Enter a number you want to check: 0
Positive

让我们看另一种检查数字是正数还是负数的逻辑。

使用 ArrayList 类

在下面的示例中,我们创建了一个名为 positiveOrNegative() 的静态方法。它接受一个 int 类型的参数 n。我们创建了一个 ArrayList 类的对象,用于存储结果“positive”、“negative”“zero”。之后,使用一个 for 循环,用 n 个“Positive”元素填充 ArrayList。如果 n 是正数,n 将是 ArrayList 中的索引,并返回元素“Positive”作为结果。如果 n 是负数,它将永远不会存在于 ArrayList 的索引中。

CheckPositiveOrNegativeExample6.java

输出

Positive
Zero
Negative

让我们看另一种检查数字是正数还是负数的逻辑。

CheckPositiveOrNegativeExample7.java

输出

Positive
Negative

在本节中,我们讨论了很多检查数字是正数还是负数的方法。但我们建议您使用关系运算符来检查数字是正数还是负数。