请提供有关Java代码的一些信息

时间:2013-09-25 04:50:30

标签: java

到目前为止我的版本:

boolean isEmpty(int[]arr) {

    for(int i=0; i<arr.length; i++)
        if(arr[i] != 0) {
            return false;
}

    return true; 
}   

我已经改变了,但仍然无法正常工作......那么应该怎么写呢?

3 个答案:

答案 0 :(得分:1)

a = 0错误,因为a是一个int数组。你可能正在寻找一个计数器变量。它可能是这样的:

boolean existsData = false;
for(int i=0; i<arr.length; i++)
    //arr[i] = 0 means assign 0 to arr[i]
    //note that I'm using different (!=)
    existsData = (arr[i] != 0);
    if (existsData) {
        break;
    }
}
return existData;

或者更简单,不使用boolean变量:

for(int i=0; i<arr.length; i++)
    if (arr[i] != 0) {
        return false;
    }
}
return true;

或者,如果你的意思是数组中没有元素,而不是“没有0元素”:

boolean isEmpty(int[] arr) {
  return arr.length == 0; 
}

答案 1 :(得分:1)

a是一个int的数组,它本身不是int ...

int[]a = new[a.length];

无效,因为a尚未宣布......

a=0;

无效,因为a是一个int的数组而不是int本身,它是一个不同的类型......

if(a[i] = 0)

是一项任务,意味着您将值0分配给a[i](或a数组中的第n个位置)

但是,即使比较正确,您的方法也不太可能返回有效值...例如......

if(a[i] == 0)
    y=true;
else
    y=false;

如果数组{1, 0}中有两个元素,则您的方法将返回true,但如果它们有{0, 1},则会返回false ...

只要找到不是0的单个值,就应该break离开循环并返回适当的响应(在这种情况下为false

您根本不需要a。您应该使用arr,这是您要检查的实际数组...

我还强烈建议您在块周围使用{...} ...它会让你的代码读得更简单,例如......

for(int i=0; i<a.length; i++) {
    if(a[i] = 0) {
        y=true;
    } else {
        y=false;
    }
}
return y; 

现在显而易见的是调用return语句的位置;)

答案 2 :(得分:0)

在您的代码中存在以下错误:

第2行:int [] a = new [a.length]; 在减速之前你不能使用a.length ...我认为它是arr.length();

第3行:a = 0; 这里a不是变量..a是数组的引用,所以你不能设置它的值0 ... 你可以设置为[0] = 0;,a [1] = 0;   或者你可以设置a = null;

第5行:if(a [i] = 0)

在if循环中它只需要布尔值。所以使它成为[i] == 0;