下面给大家分享一段计算器的代码,代码如下:
fun main(args: Array<String>) {
while (true) {
try {
println("请输入计算公式例如:3 + 4")
val input = readLine()?:break
val splits = input.trim().split(" ")
if (splits.size < 3){
throw IllegalArgumentException("参数的个数不对")
}
val arg1 = splits[0].toDouble()
val op = splits[1]
val arg2 = splits[2].toDouble()
println("$arg1 $op $arg2 = ${Operator(op).apply(arg1, arg2)}")
}catch (e:NullPointerException){
println("你确定你输入的是数吗??")
}catch (e:IllegalArgumentException){
println("你确定你输入的格式正确吗:待空格的")
}catch (e:Exception){
println("亲爱的用户你的人品太差了,处理了一个未知的异常")
}
println("是否还要继续输入 [Y]")
val inpuu= readLine()
if (inpuu==null || inpuu.toLowerCase() != "y"){
break
}
}
println("感谢你用我自制的计算器 ")
}
class Operator(op:String){
val opFun:(left:Double,right:Double) -> Double
init {
opFun =when(op){
"+" ->{l,r -> l + r}
"-" ->{l,r -> l - r}
"*" ->{l,r -> l * r}
"/" ->{l,r -> l / r}
"%" ->{l,r -> l % r}
else ->{
throw UnsupportedOperationException(op)
}
}
}
fun apply( left: Double,right: Double):Double{
return opFun(left,right)
}
}
Kotlin代码继续更新。