首页 > 解决方案 > 错误:具有块体的函数中需要“返回”表达式

问题描述

这是我用来遍历循环的程序,它将对变量进行所有数学运算。

fun main(){
    val list1=listOf('+','-','*','/')
    val a:Double= 10.0
    val b:Double= 2.0
    for (i in list1){
        println({operation(a,b,i)})
    }
}

fun operation(a:Double,b:Double,i:Char): Double {
    when(i){
        '+'->return a+b
        '-'->return a-b
        '*'->return a*b
        '/'-> return if (b==0.0){ -1.0 } else{ a/b }
    }
}

标签: kotlin

解决方案


您需要从函数返回一个值operation,目前如果i不是 '+', '-', '*''/'则您没有返回任何内容。如果这些是唯一的操作,那么您可以将代码更新为

   fun operation(a:Double,b:Double,i:Char): Double {
        return when(i){
            '+'-> a+b
            '-'-> a-b
            '*'-> a*b
            else -> if (b==0.0) -1.0 else{ a/b }
        }
    }

您可以使用表达式主体使其更短

   fun operation(a: Double, b: Double, i: Char) = when (i) {
        '+' -> a + b
        '-' -> a - b
        '*' -> a * b
        else -> if (b == 0.0) -1.0 else { a / b }
    }

推荐阅读