fun main(){
while (true) {
println("请输入表达式")
val input = readLine()
try {
//判空方法 input为空 则不会触发闭包里面的逻辑
input?.let {
val ret = caculate(it)//it指代input
println("${input}=${ret}")
println("是否继续使用(y/n)}")
val cmd = readLine()
cmd?.let {
if (it.equals("y")) {
System.exit(-1)//强制退出程序
} else {
//无需操作即可再次循环 while(true)死循环
}
}
}
} catch (ex: Exception) {
ex.printStackTrace()
}
}
}
private fun caculate(input: String): String {
if (input.contains("+")){
val nums = input.trim().split("+") //trim()去空格 split("+") 按加号进行切割
return operate(nums[0].toDouble(),nums[1].toDouble(),"+").toString()
}else if (input.contains("-")){
val nums = input.trim().split("-") //trim()去空格 split("+") 按加号进行切割
return operate(nums[0].toDouble(),nums[1].toDouble(),"-").toString()
}else if (input.contains("*")){
val nums = input.trim().split("*") //trim()去空格 split("+") 按加号进行切割
return operate(nums[0].toDouble(),nums[1].toDouble(),"*").toString()
}else if (input.contains("/")){
val nums = input.trim().split("/") //trim()去空格 split("+") 按加号进行切割
return operate(nums[0].toDouble(),nums[1].toDouble(),"/").toString()
}else{
return "输入表达式有误"
}
}
private fun operate(num: Double, num2: Double,operate:String): Double {
val sum:Double = when(operate){
"+" -> num+num2
"-" -> num-num2
"*" -> num*num2
"/" -> num/num2
else -> {-1.0}
}
return sum
}
Android Kotlin 从入门到精通(七、Kotlin计算器案例)
最新推荐文章于 2024-05-06 15:26:07 发布