Java中用for循环打印整数数组首元素始终为0的问题排查
问题修复:数组首元素打印为0的解决办法
你的代码核心问题是填充数组和打印数组的顺序搞反了,还多了没必要的嵌套循环:
- 原代码的for-each循环先遍历打印数组元素,这时候数组还没被赋值,int数组的默认初始值是0,所以第一个元素直接打出0;
- 之后才进入内层循环填充数组,等填充完成后,for-each继续遍历剩下的元素,这时候数组已经有值,所以后面的元素显示正常,但第一个0已经输出了。
修正后的代码
String stringNum = input.nextLine(); int size = stringNum.length(); int[] myArray = new int[size]; // 先完成数组填充 for (int i = 0; i < size; i++) { char n = stringNum.charAt(i); int intNum = Character.getNumericalValue(n); myArray[i] = intNum; } // 再遍历打印数组 for (int a : myArray) { System.out.print(a); System.out.print(" "); }
修正说明
- 拆分了嵌套循环:先单独完成数组的赋值操作,确保打印时数组所有元素都已经被正确赋值;
- 去掉了重复填充数组的逻辑:原嵌套循环会在每次打印一个元素时重新填充整个数组,完全属于冗余操作,既浪费性能又打乱逻辑。
输入12345后,输出会变为1 2 3 4 5 ,符合预期。
内容的提问来源于stack exchange,提问作者flcnb703
相关产品推荐
相关产品推荐

