同学你好,参考如下:
首先要知道的是这道题,主要是想把传递进去的数组,倒序排列,倒序排列其实就是说我传递进去的顺序是1,2,3,经过处理后是3,2,1。那么这里其实就相当于是说往新数组中newArr把原来传递进来的数组按照下标进行重新排列。
首先我们先来看看这里用到的知识点。
控制台中输入arr的长度是4。
那么数组的长度虽然是4,但是要挨个打印它们,会发现arr[4]其实是没有值的。
最后我们来看看arr.length - 1,会是什么情况。
控制台输出的是3。
那么如果说我们用arr[arr.length -1] =?
输出的是4,那么arr.lenght -1 = 3 相当于就是arr[3]这个意思。那么arr[3]是不是就4啊。
现在反过来我们看看同学迷糊的地方,首先我们明确了这个方法就是倒序了数组的排序,那么它用的其实就是
newArr[7] = arr[0];
newArr[6] = arr[1];
newArr[5] = arr[2];
newArr[4] = arr[3];
newArr[3] = arr[4];
newArr[2] = arr[5];
newArr[1] = arr[6];
newArr[0] = arr[7];
同学可以在刚进入方法的时候,打印一下arr的length。如下:
接下来我们正式往下走,进入循环以后,当i=0的时候,那么newArr[arr.length - 1 - i] 其实就等于newArr[8-1-0] == newArr[7],那么我们要在newArr[7]个位置,把arr[i]也就是arr[0]个的值给到newArr[7]就行了。
当i=1,newArr[arr.length - 1 - i] 其实就等于newArr[8-1-1] == newArr[6]。arr[i]就是arr[1]。
当i=2,newArr[arr.length - 1 - i] 其实就等于newArr[8-1-2] == newArr[5]。arr[i]就是arr[2]。
当i=3,newArr[arr.length - 1 - i] 其实就等于newArr[8-1-3] == newArr[4]。arr[i]就是arr[3]。
当i=4,newArr[arr.length - 1 - i] 其实就等于newArr[8-1-4] == newArr[3]。arr[i]就是arr[4]。
当i=5,newArr[arr.length - 1 - i] 其实就等于newArr[8-1-5] == newArr[2]。arr[i]就是arr[5]。
当i=6,newArr[arr.length - 1 - i] 其实就等于newArr[8-1-6] == newArr[1]。arr[i]就是arr[6]。
当i=7,newArr[arr.length - 1 - i] 其实就等于newArr[8-1-7] == newArr[0]。arr[i]就是arr[7]。
最后就相当于是把arr索引是0赋值给了newArr最后一位以此类推,到最后arr索引的最后一位,赋值给到了newArr的第一位,这样就起到了把传递进去的数组,位置进行倒序了。
同学自己试试,祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星