我正在尝试编写一个方法,将在矩阵(二维数组)上使用高斯消除,我正在尝试调试我的方法,我遇到了这个问题
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;
}
Run Code Online (Sandbox Code Playgroud)
这不是最后的方法,但由于某种原因,这个循环永远不会停止,为什么?
Ben*_*Ben 11
while (pivotCol == 0 && j <= cols()) {
...
}
Run Code Online (Sandbox Code Playgroud)
你忘了括号,所以while只用if语句,因此运行无限.
我想问题是你的while循环没有花括号,例如它有效如下:
while (pivotCol == 0 && j <= cols()) {
if (i == rows()){
j++;
i = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
如果i != rows()这永远不会终止.
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |