Java数组是如何处理的?
首先是一个总结:我正在研究CodingBat.com上的一些基本问题,这对初学者或像我这样的生疏者来说是个好东西,我决定以新的方式循环数组 我说我生锈了 这项工作: 错误:Exception:java.lang.ArrayIndexOutOfBoundsException:9行号:4 *所以问题是ifnums[i]==9b++* 因此,我的问题是: 1*问题是什么* 2*有人有规格参考吗* 关于2,我尝试过谷歌搜索,但还没有找到我要找的东西,即使有教程,我也无法完全理解下面的伏都教 我先谢谢你Java数组是如何处理的?,java,arrays,Java,Arrays,首先是一个总结:我正在研究CodingBat.com上的一些基本问题,这对初学者或像我这样的生疏者来说是个好东西,我决定以新的方式循环数组 我说我生锈了 这项工作: 错误:Exception:java.lang.ArrayIndexOutOfBoundsException:9行号:4 *所以问题是ifnums[i]==9b++* 因此,我的问题是: 1*问题是什么* 2*有人有规格参考吗* 关于2,我尝试过谷歌搜索,但还没有找到我要找的东西,即使有教程,我也无法完全理解下面的伏都教 我先谢谢你
编辑使用迭代值作为索引。应该是:
for(int i: nums){
if(i==9) b++;
}
因此,如果数组中的值大于数组大小,则会出现索引越界异常。当您以新的方式使用它时,您不再需要访问数组,您已经拥有循环中每个项的引用
public int arrayCount9(int[] nums) {
int b=0;
for(int i: nums){
if(i == 9) b++;
}
return b;
}
您对for-each循环的工作方式感到困惑。 这样做,看看你是否能解决问题
for(int i: nums){
System.out.println(i);
}
请参见规范的这一部分:
这将解释一切。增强型for循环将立即从迭代器返回值,因此您的“i”实际上是数组值而不是索引。在第一个示例中,我是索引,但在第二个示例中,我是值。我喜欢这种让人们理解的答案,而不是复制和粘贴。
public int arrayCount9(int[] nums) {
int b=0;
for(int i: nums){
if(i == 9) b++;
}
return b;
}
for(int i: nums){
System.out.println(i);
}