java - 有人会在这种情况下解释“类型不匹配:无法从双精度转换为布尔值”吗?
问题描述
我正在处理的作业问题是,如果列表中的所有元素具有相同的值,则要求我返回 true,如果任何元素具有不同的值,则返回 false。我编写了以下代码来完成此操作:
public static boolean allSame (double[] list) {
double sameReference = list[0];
for (int i = 1; i < list.length; i++) {
if (list [i+1] = sameReference)
continue;
else return false;
return true;
}
}
它似乎运行良好,除了我在第 3 行遇到了一个错误:Type mismatch: cannot convert from double to boolean
有人可以解释一下从双精度布尔值转换的内容,以及我写的正在转换它的内容吗?我将如何解决这个错误?感谢您的帮助!
解决方案
首先,您需要使用==
而不是=
for equal
if (list [i+1] == sameReference)
其次,当 i 从 1 开始时,您不应该检查 list [i+1]。
第三,你不应该使用continue
public static boolean allSame (double[] list) {
double sameReference = list[0];
for (int i = 1; i < list.length; i++) {
if (list [i] != sameReference)
return false;
}
return true;
}
你可以考虑先检查列表的大小。
推荐阅读
- boolean-logic - OBDD 变量重新排序修复了 CUDD 中的组顺序
- visual-studio-code - 如何在 Git bash (Windows) 中使用 Ctrl+A 选择当前命令的所有文本
- kotlin - Kotlin 扩展运算符无法将数组转换为可变参数
- swift - [UInt8] 的 Swift 扩展
- reactjs - 类型“typeof Row”不可分配给类型“ComponentType”
> & 反应节点'。TS2769 - solr - Solr 创建集合时底层核心创建失败
- sparql - 访问 .trig 文件空白节点中的多个值
- javascript - 加载图像预览后在底部添加自动滚动
- reactjs - Mobx React 存储数组推送不需要的道具
- azure - 天蓝色管道 - PowerShell