While循环中自减运算符的问题
Problem with Decrement Operator in While Loop
我正在尝试编写一个程序来计算乘法表对角线部分中所有数字的总和(基本上是从数组的第 12 行第 1 列到第 1 行第 12 列)。问题是,在代码中,Rowcounter 在每次循环后都拒绝减少,而 Colcounter 增加得很好。我做错了什么?
public Integer ComputeDiagonalSum(int multiplier)
{
Integer [][] MultiArray = new Integer[multiplier][multiplier];
int RowCounter = MultiArray.length - 1;
int ColCounter = 0;
Integer DiagonalSum = 0;
while(RowCounter > 0)
{
int RowNumber = RowCounter + 1;
//
//Compute inner loop
while(ColCounter < MultiArray[multiplier - 1].length)
{
int ColNumber = ColCounter + 1;
//Load each box in the current column of the current row
MultiArray[RowCounter][ColCounter] = RowNumber * ColNumber;
DiagonalSum += MultiArray[RowCounter][ColCounter];
ColCounter++;
}
//doesn't work
RowCounter--;
}
return DiagonalSum;
}
问题不在于您的 RowCounter 没有减少,而是您需要在第一个循环内移动 ColCounter 的初始化,在开头。 while(ColCounter < MultiArray[multiplier - 1].length)
的评估在第一次迭代后将始终 return false,因为 ColCounter 已达到数组的大小。
我正在尝试编写一个程序来计算乘法表对角线部分中所有数字的总和(基本上是从数组的第 12 行第 1 列到第 1 行第 12 列)。问题是,在代码中,Rowcounter 在每次循环后都拒绝减少,而 Colcounter 增加得很好。我做错了什么?
public Integer ComputeDiagonalSum(int multiplier)
{
Integer [][] MultiArray = new Integer[multiplier][multiplier];
int RowCounter = MultiArray.length - 1;
int ColCounter = 0;
Integer DiagonalSum = 0;
while(RowCounter > 0)
{
int RowNumber = RowCounter + 1;
//
//Compute inner loop
while(ColCounter < MultiArray[multiplier - 1].length)
{
int ColNumber = ColCounter + 1;
//Load each box in the current column of the current row
MultiArray[RowCounter][ColCounter] = RowNumber * ColNumber;
DiagonalSum += MultiArray[RowCounter][ColCounter];
ColCounter++;
}
//doesn't work
RowCounter--;
}
return DiagonalSum;
}
问题不在于您的 RowCounter 没有减少,而是您需要在第一个循环内移动 ColCounter 的初始化,在开头。 while(ColCounter < MultiArray[multiplier - 1].length)
的评估在第一次迭代后将始终 return false,因为 ColCounter 已达到数组的大小。