到目前为止我的版本:
boolean isEmpty(int[]arr) {
for(int i=0; i<arr.length; i++)
if(arr[i] != 0) {
return false;
}
return true;
}
我改了,还是不行……那应该怎么写呢?
到目前为止我的版本:
boolean isEmpty(int[]arr) {
for(int i=0; i<arr.length; i++)
if(arr[i] != 0) {
return false;
}
return true;
}
我改了,还是不行……那应该怎么写呢?
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;
}
a
是int
's 的数组,它本身不是int
...
int[]a = new[a.length];
无效,因为a
尚未声明...
a=0;
无效,因为sa
的数组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 行:int[]a = new[a.length]; 你不能在减速之前使用 a.length ......我认为它是 arr.length();
第 3 行:a=0;这里 a 不是变量 ..a 是数组的引用,所以你不能将它的值设置为 0 ...你可以设置为 a[0]=0;,a[1]=0; 或者您可以将其设置为 a=null;
第 5 行:如果(a[i] = 0)
在 if 循环中它只需要布尔值..所以让它 a[i]==0;