kotlin - 错误:具有块体的函数中需要“返回”表达式
问题描述
这是我用来遍历循环的程序,它将对变量进行所有数学运算。
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 }
}
}
解决方案
您需要从函数返回一个值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 }
}
推荐阅读
- windows - docker无效消息 - 来自守护程序的错误响应:无效模式
- terraform - Terraform 将 NIC 附加到 Azure 中的正确子网 ID
- javascript - 如何编写无限期在“后台”运行的代码
- react-native - 在由 npx create-react-native-app 引导的项目上运行 yarn 时,在最新的 expo-cli 上生成 SSL 问题
- terminal - 如何在mac的命令行上打开Visual Studio
- c - C 单链表 Seg 错误与 gcc 但不是 dcc
- c++ - 为什么 `constexpr` 是`std::max()` 的 C++14 模板原型的一部分?
- git - 错误“致命:无法从远程存储库读取”git push - ssh 密钥
- c++ - 在 C++ 中合并排序意外输出
- python - 我很难理解伪代码