Java 为什么这个for循环在4和5之前显示数字?
首先为我的英语感到抱歉。实际上,我正在尝试用Java完成我的第一步,我正在阅读Java:完整的参考,我陷入了多维数组中。现在,我想我可能理解了这个概念,但我这里的问题是书中显示的代码Java 为什么这个for循环在4和5之前显示数字?,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,首先为我的英语感到抱歉。实际上,我正在尝试用Java完成我的第一步,我正在阅读Java:完整的参考,我陷入了多维数组中。现在,我想我可能理解了这个概念,但我这里的问题是书中显示的代码 public class TwoDArray { public static void main(String[]args) { int twoD [] [] = new int [4] [5]; int i, j, k = 0; for(i=0; i<
public class TwoDArray {
public static void main(String[]args) {
int twoD [] [] = new int [4] [5];
int i, j, k = 0;
for(i=0; i<4; i++)
for (j=0; j<5; j++) {
twoD [i] [j] = k;
k++;
}
for(i=0; i<4; i++) {
for(j=0; j<5; j++)
System.out.print(twoD [i] [j] + " ");
System.out.println();
}
}
}
公共类TwoDArray{
公共静态void main(字符串[]args){
int-twoD[][]=新int[4][5];
int i,j,k=0;
对于(i=0;i您正在将k
赋值给2D数组的[i][j]元素
因为k
是在任何循环之外声明的,所以它从0到(i*j-1)
-0..19
所以你有你的索引i=0,1,2,3
和j=0,1,2,3,4
,但是k
的值是0,1,2…19
,因为你总是为每个循环和“if”添加花括号语句。如果不这样做,循环将只在它下面的一个代码行上运行。即使您了解它是如何工作的,您也可能会忘记它,并因此在将来遇到更多问题
每次迭代带有变量j
的循环时,k
都会增加
j
被迭代了5次,但它在上面的循环中被4次删除。所以4x5=20,所以你有20个从0到19的数字。我想你对数组的概念不是很清楚。
让我们了解现实生活中的例子:
1D阵列:
假设我们将7个编号为11到17的球放在编号为0到6的盒子中。
如下图所示:
[11,12,13,14,15,16,17]——球的大小
--盒子上的数字
这是Java或任何编程语言中的一维数组
以上代码:
int[] arrayOfBoxes = new int[7];
int valueOnTheBall = 11;
for (int numberOnTheBox=0; numberOnTheBox<7; numberOnTheBox++)
{
arrayOfBoxes[numberOnTheBox] = valueOnTheBall;
valueOnTheBall++;
}
int[]数组框=新的int[7];
int-valueOnTheBall=11;
对于(int numberOnTheBox=0;numberOnTheBox addSystem.out.println(“i=“+i+”,j=“+j+”,k=“+k”);
在twoD[i][j]=k之前的一行;
我郑重、郑重地建议学习如何使用调试器。调试器是你的朋友。刚开始学习一门新语言,学习IDE(项目管理器、编辑器、编译器/链接器/运行时执行和调试器)与学习语法一样重要。在不了解发生了什么的地方设置断点,并作为状态(变量值)进行监视改变。你对正在发生的事情有了深刻的了解。然后你会很快成为专家,可以帮助其他学生。祝你好运!
int[] arrayOfBoxes = new int[7];
int valueOnTheBall = 11;
for (int numberOnTheBox=0; numberOnTheBox<7; numberOnTheBox++)
{
arrayOfBoxes[numberOnTheBox] = valueOnTheBall;
valueOnTheBall++;
}
int arrayNumber;
int indexOfEachArray;
int[][] arrayMatrix = new int[4][5];
int sizeOfTheBall = 11;
for(arrayNumber = 0; arrayNumber < 4; arrayNumber++)
{
for(indexOfEachArray=0; indexOfEachArray < 5; indexOfEachArray++)
{
arrayMatrix [arrayNumber][indexOfEachArray] = sizeOfTheBall;
sizeOfTheBall++;
}
}