# Kotlin 程序：使用`switch...case`制作一个简单的计算器

> 原文： [https://www.programiz.com/kotlin-programming/examples/calculator-when](https://www.programiz.com/kotlin-programming/examples/calculator-when)

#### 在此程序中，您将学习使用 Kotlin 中的`when`表达式制作一个简单的计算器。 该计算器将能够对两个数字进行加，减，乘和除运算。

## 示例：使用`switch`语句的简单计算器

```kt
import java.util.*

fun main(args: Array<String>) {
    val reader = Scanner(System.`in`)
    print("Enter two numbers: ")

    // nextDouble() reads the next double from the keyboard
    val first = reader.nextDouble()
    val second = reader.nextDouble()

    print("Enter an operator (+, -, *, /): ")
    val operator = reader.next()[0]

    val result: Double

    when (operator) {
        '+' -> result = first + second
        '-' -> result = first - second
        '*' -> result = first * second
        '/' -> result = first / second
        // operator doesn't match any case constant (+, -, *, /)
        else -> {
            System.out.printf("Error! operator is not correct")
            return
        }
    }

    System.out.printf("%.1f %c %.1f = %.1f", first, operator, second, result)
}
```

运行该程序时，输出为：

```kt
Enter two numbers: 1.5
4.5
Enter an operator (+, -, *, /): *
1.5 * 4.5 = 6.8
```

使用`Scanner`对象的`next()`方法，将用户输入的`*`运算符存储在`operator`变量中。

同样，使用`Scanner`对象的`nextDouble()`方法，将两个操作数 1.5 和 4.5 分别存储在变量`first`和`second`中。

由于运算符`*`匹配何时条件`'*':`，因此程序控制跳至

```kt
result = first * second;

```

该语句计算产品并将结果存储在变量`result`中，并使用`printf`语句进行打印。

以下是等效的 Java 代码：[制作简单计算器的 Java 程序](/java-programming/examples/calculator-switch-case "Java Program to Make a Simple Calculator")