java数组为啥这样子输出

img

请问我这个代码哪里出错了,为啥输出不是1,2,3,4,这个里面的1.0什么的哪儿来的啊,这个代码的目的是给数组1扩容添加元素4进去

  • arr1 长度3, arr2 长度4;进入for循环
  • arr2[0] = arr1[0] = 1;
  • 添加新元素 4, arr2[3-1] = arr2[2] = 4
  • arr1 = arr2, arr1指向新的数组arr2。
  • 不需要添加元素,退出第一个for循环;
  • 下一个for循环打印 arr1 即arr2的数据【数组元素未赋值,默认为0】。
  • 输出如下:
1
0
4
0

你的for循环,当i=0 的时候你将arr2[0]=arr1[0],然后你直接在循环里输入里,并且输入后将arr2[arr1.length-1] 也就是arr2[2]=输入值。这个时候输入否,退出了循环,所以你的arr2里面是 1 0 4 0 。0的原因是基本类型int初始化的值就是0。

提问者你好。
首先:
1、你的循环在使用break的时候已经结束,且只运行了一次。
2、第一次循环体的开始,只给了第一个数和倒数第二给了值。你给了你控制台输出的4, 且你的位置为:长度 - 1 所以 实际上你的参数值应该为:2 也就是你第三次打印的地方 数值4
3、数组在初始化时如果你的不给的值,那么打印的时候,会使用0进行填充,所以
4、跳出循环体,不结束应该使用continue而不是break