Android Kotlin 从入门到精通(七、Kotlin计算器案例)

 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

    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值