# Java 程序：使用三元运算符查找最小的三个数字

> 原文： [https://beginnersbook.com/2017/09/java-program-to-find-the-smallest-of-three-numbers-using-ternary-operator/](https://beginnersbook.com/2017/09/java-program-to-find-the-smallest-of-three-numbers-using-ternary-operator/)

这个 java 程序使用[三元运算符](https://beginnersbook.com/2017/08/operators-in-java/)找到三个数中最小的一个。让我们看看什么是**三元运算符**：
这个运算符计算一个布尔表达式并根据结果赋值。

```java
variable num1 = (expression) ? value if true : value if false
```

如果表达式结果为`true`，则将冒号（`:`）之前的第一个值分配给变量`num1`，否则将第二个值分配给`num1`。

## 示例：使用三元运算符编程以查找三个最小的数字

我们使用三元运算符两次得到最终输出，因为我们分两步完成了比较：
第一步：比较`num1`和`num2`，并将这两者中最小的一个存储到临时变量`temp`中。
第二步：比较`num3`和`temp`得到三个中最小的一个。
如果你愿意，你可以在一个语句中这样做：

```java
result = num3 < (num1 < num2 ? num1:num2) ? num3:(num1 < num2 ? num1:num2);

```

这是完整的程序：

```java
import java.util.Scanner;
public class JavaExample 
{
    public static void main(String[] args) 
    {
        int num1, num2, num3, result, temp;
        /* Scanner is used for getting user input. 
         * The nextInt() method of scanner reads the
         * integer entered by user.
         */
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter First Number:");
        num1 = scanner.nextInt();
        System.out.println("Enter Second Number:");
        num2 = scanner.nextInt();
        System.out.println("Enter Third Number:");
        num3 = scanner.nextInt();
        scanner.close();

        /* In first step we are comparing only num1 and
         * num2 and storing the smallest number into the
         * temp variable and then comparing the temp and
         * num3 to get final result.
         */

        temp = num1 < num2 ? num1:num2;
        result = num3 < temp ? num3:temp;
        System.out.println("Smallest Number is:"+result);
    }
}
```

输出：

```java
Enter First Number:
67
Enter Second Number:
7
Enter Third Number:
9
Smallest Number is:7
```