在此程序中,您將學(xué)習(xí)使用Kotlin中的when表達(dá)式制作一個(gè)簡(jiǎn)單的計(jì)算器。該計(jì)算器將能夠?qū)蓚€(gè)數(shù)字進(jìn)行加,減,乘和除運(yùn)算。
import java.util.* fun main(args: Array<String>) { val reader = Scanner(System.`in`) print("輸入兩個(gè)數(shù)字: ") //nextDouble()從鍵盤(pán)讀取下一個(gè)double val first = reader.nextDouble() val second = reader.nextDouble() print("輸入運(yùn)算符 (+, -, *, /): ") val operator = reader.next()[0] val result: Double when (operator) { '+' -> result = first + second '-' -> result = first - second '*' -> result = first * second '/' -> result = first / second //運(yùn)算符不匹配任何 case 常量 (+, -, *, /) else -> { System.out.printf("錯(cuò)誤!運(yùn)算符不正確") return } } System.out.printf("%.1f %c %.1f = %.1f", first, operator, second, result) }
運(yùn)行該程序時(shí),輸出為:
輸入兩個(gè)數(shù)字: 1.5 4.5 輸入運(yùn)算符 (+, -, *, /): * 1.5 * 4.5 = 6.8
用戶(hù)輸入的 * 運(yùn)算符使用 Scanner對(duì)象的next()方法,存儲(chǔ)在 operator 變量中。
同樣,兩個(gè)操作數(shù)1.5和4.5分別存儲(chǔ)在變量first和second中 ,使用Scanner對(duì)象的nextDouble()方法。
因?yàn)?,運(yùn)算符 * 匹配 when條件 '*':,程序的控制跳轉(zhuǎn)到:
result = first * second;
該語(yǔ)句計(jì)算乘積并存儲(chǔ)在變量 result 中,并使用printf語(yǔ)句打印。
以下是等效的Java代碼:制作簡(jiǎn)單計(jì)算器的Java程序