kotlin案例实践—-一次四则运算计算器
效果
=========请输入你的表达式=========
1+11
1+11=12.0
是否继续使用(y/n)
y
=========请输入你的表达式=========
1-100
1-100=-99.0
是否继续使用(y/n)
y
=========请输入你的表达式=========
1*10
1*10=10.0
是否继续使用(y/n)
y
=========请输入你的表达式=========
1、10
error:你输入的表达式有误
是否继续使用(y/n)
1/10
=========请输入你的表达式=========
是否继续使用(y/n)
n
Process finished with exit code 255
代码
// 一次四则运算表达式计算器
fun main() {
while (true){
println("=========请输入你的表达式=========")
val input = readLine()
try {
input?.let {
val ret = calculate(it)
// 1+1 = 2
println("${input}=${ret}")
println("是否继续使用(y/n)")
val cmd = readLine()
cmd?.let {
if (it == "n") {
exitProcess(-1)
} else {
//继续实用程序
}
}
}
} catch (ex: Exception) {
ex.printStackTrace()
}
}
//运行到这里的时候 就结束了
}
fun calculate(input: String): String {
// input =1+1
// input =1-10
// input =1/2
// input= 1*11
if (input.contains("+")) {
val nums = input.trim().split("+")
return operate(nums[0].toDouble(), nums[1].toDouble(), "+").toString()
} else if (input.contains("-")) {
val nums = input.trim().split("-")
return operate(nums[0].toDouble(), nums[1].toDouble(), "-").toString()
} else if (input.contains("/")) {
val nums = input.trim().split("/")
return operate(nums[0].toDouble(), nums[1].toDouble(), "/").toString()
} else if (input.contains("*")) {
val nums = input.trim().split("*")
return operate(nums[0].toDouble(), nums[1].toDouble(), "*").toString()
} else {
return "error:你输入的表达式有误"
}
}
fun operate(num: Double, num2: Double, operate: String): Double {
return when (operate) {
"+" -> num + num2
"-" -> num - num2
"/" -> num / num2
"*" -> num * num2
else -> 0.0
}
}