Kotlin计算器代码

下面给大家分享一段计算器的代码,代码如下:
fun main(args: Array<String>) {
    while (true) {
//        为了防止用户输入的小数不正确就加一个try catch
        try {
        println("请输入计算公式例如:3 + 4")
//    定义控制台,后面的?:就是如果时空的话就停止
        val input = readLine()?:break
//        去除空格
            val splits = input.trim().split(" ")
            if (splits.size < 3){
                throw IllegalArgumentException("参数的个数不对")
            }
//        取公式的坐标1的数转换成小数
            val arg1 = splits[0].toDouble()
//        运算符
            val op = splits[1]
//        取公式的坐标3的数转换成小数
            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()
//        tolowercase的意思就是小写
        if (inpuu==null || inpuu.toLowerCase() != "y"){
            break
        }

    }
    println("感谢你用我自制的计算器 ")
}
class Operator(op:String){
//    定义一个lamda表达式
    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代码继续更新。

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值