我正在尝试编写一种将在矩阵(二维数组)上使用高斯消除的方法,并且我正在尝试调试我的方法,但是遇到了这个问题

public int Gauss() {
    int i = 1;
    int j = 1;
    int pivotCol = 0;
    while (pivotCol == 0 && j <= cols())
        if (i == rows()){
            j ++;
            i = 1;
        }
        if (get(i,j) == 1.0){
            pivotCol = j;
        } else {
            i ++;
        }
    return pivotCol;
}


这不是最终方法,但是由于某种原因,此循环永远不会停止,为什么?

最佳答案

while (pivotCol == 0 && j <= cols()) {
...
}


您忘记了方括号,因此while仅与if语句一起使用,因此它无限运行。

关于java - 为什么这会导致无限循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20443045/

10-13 03:42