其实写这篇日志的原因是我钻牛角尖了。。。
老师在课上有讲到一个关于获取数组长度的知识点——
格式:
数组名.length
定义:
直接获取对应数组的长度(或内含元素个数)
然后老师出了一个关于打印数组内所有元素的练习。
需求:
在屏幕上依次打印数组内所有元素,并已逗号隔开。
思路:
1)定义功能,打印数组内部所有元素,返回值类型为void;
2)有一个未知参数参与运算:元素的个数,用变量记录。
代码如下:
public static void printArr(int []arr)// 参数列表中为数组类型{for (int x=0;x<arr.length;x++)//满足条件,当元素个素变量小于数组长度时,进行循环{if (x!=arr.length-1)//为了最后一个被打印的元素不带“,” 用判断将最后一个元素判断出来System.out.print(arr[x]+" ,");else System.out.println(arr[x]+" ");}}
其实我就是在arr.length-1这里纠结了很久。
始终没有明白为什么会-1
后来我将arr.length的值直接打印,发现结果为数组所有元素的个数。练习中为8
于是结果自然就出来了,为了让最后一个元素不被打印,所以才会使用arr.length-1
因为arr.length-1的结果为7 , 而数组中元素的角标是以0开始。
所以它自然是最后一个元素了,便可以打印出没有逗号的形态。
问题的重点及结果是——
我把角标序号和数组长度搞混淆了,所以才纠结了这么久。