我不知道为什么我的变量会得到这些值

时间:2013-05-15 14:35:18

标签: java

public int Gauss_Jordan(double[][] matrix, int numOfRows, int numOfCols) {
    for (int col_j = 0; col_j<numOfCols; col_j++) {
        row_i = nonzeros ++;
        System.out.println(row_i+" and "+nonzeros);
    }
    //return matrix;

    return 0;
}

在名为“Gauss_Jordan”的方法中,你可以看到一个for循环,它迭代直到达到某个条件。 (呃..对不起)。

所以我设置了row_i = nonzeros ++但是这就是事情,当我打印出每次迭代时我得到了

  • 0和1,
  • 1和2,
  • 2和3

。我希望输出为:

  • 1和1,
  • 2和2,
  • 3和3.

为什么不是这样?

3 个答案:

答案 0 :(得分:4)

您需要++nonzeros而不是nonzeros++来获得您的期望。

答案 1 :(得分:4)

这称为后增量;

当您说row_i = nonzeros ++;

首先row_i将被赋予nonzeros的值,nonzero将会增加。

尝试预增量

row_i = ++nonzeros; 

答案 2 :(得分:0)

如果预增量不是您想要的。检查nonzeros的初始化并将其更改为“1”,以便它显示为您想要的内容。您的代码正常运行。