Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有人能解释一下吗;类型不匹配:无法从双精度转换为布尔值;在这种情况下?_Java_For Loop_If Statement - Fatal编程技术网

Java 有人能解释一下吗;类型不匹配:无法从双精度转换为布尔值;在这种情况下?

Java 有人能解释一下吗;类型不匹配:无法从双精度转换为布尔值;在这种情况下?,java,for-loop,if-statement,Java,For Loop,If Statement,我正在研究的家庭作业问题是,如果列表中的所有元素都具有相同的值,则返回true;如果任何元素具有不同的值,则返回false。为此,我编写了以下代码: public static boolean allSame (double[] list) { double sameReference = list[0]; for (int i = 1; i < list.length; i++) { if (list [i+1] = sam

我正在研究的家庭作业问题是,如果列表中的所有元素都具有相同的值,则返回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;
        }
    }
publicstaticbooleanalsame(双[]列表){
双同参考=列表[0];
for(int i=1;i
它似乎工作得很好,只是我在第3行遇到了一个错误:
类型不匹配:无法从double转换为boolean


有人能解释一下什么是从double-too-Boolean转换过来的,以及我写的转换它的东西吗?我将如何着手解决此错误?谢谢你的帮助

首先,您需要使用
=
而不是
=
来表示相等的值

if (list [i+1] == sameReference)
第二,当我从1开始时,不应该选中列表[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;
}
publicstaticbooleanalsame(双[]列表){
双同参考=列表[0];
for(int i=1;i

您可以考虑是否先检查列表的大小。

仔细查看
list[i+1]=samerereference
。问:到底是什么?答:这是一个赋值表达式。问:它的价值是什么?答:
sameReference
的值。问:那是什么?A:A
double
。问:在
if
情况下,您需要什么?A:A
boolean
。。。不是
double
。sameReference表示数组的第一个元素。它是指所有后续数字都需要匹配的“参考”数字。我的思考过程是,如果后续元素都等于第一个元素的值,那么它们被认为是相同的,循环继续。所以sameReference,或者list[0],必须等于list[i+1],循环才能继续。我知道这一点。但是,您应该使用什么运算符来比较两个数字呢?提示:它不是
=
=
运算符是赋值运算符。您需要
==
操作符!而
{}
后面的
else
语句是无用的,实际上它不止于此。
{}
是一个无法访问的语句,它后面的
返回值也是如此。基本上,这个方法的块结构都是混乱的。不幸的是,你给了OP一个完整的解决方案。我说不幸的是,因为学习编码的人从犯错误、发现、理解和纠正错误中学到的东西比从阅读正确的解决方案中学到的东西要多。感谢你指出这一点,StephenI感谢你的回答。我现在明白了,我在这个问题上使用了赋值运算符而不是等式运算符。我理解您在这里发送的代码,但我有一个问题-如果数组的长度为零怎么办?我刚刚用一个空数组运行了一个测试用例,结果抛出了一个
java.lang.ArrayIndexOutOfBoundsException
。我理解异常的含义,但我不知道如何在不使用try-catch的情况下对此进行解释。@Pallu08:好的,您已经在其中找到了用于查找列表长度的代码,因此您应该能够在方法开始时使用它来做些事情。。。