Java 打印nxn表时的无限循环
考虑以下Java程序:Java 打印nxn表时的无限循环,java,infinite-loop,Java,Infinite Loop,考虑以下Java程序: public class RelativelyPrime { public static void main(String[] args) { int N = Integer.parseInt(args[0]); // Dimensions of grid int i, j; int r; // Remainder when i is divided by j for (i = 1; i <=
public class RelativelyPrime {
public static void main(String[] args) {
int N = Integer.parseInt(args[0]); // Dimensions of grid
int i, j;
int r; // Remainder when i is divided by j
for (i = 1; i <= N; i++) {
for (j = 1; j <= N; j++) {
do { // Using Euclidean algorithm
r = i % j;
i = j;
j = r;
} while (r > 0);
if (i == 1) System.out.print("*");
else System.out.print(" ");
}
System.out.println();
}
}
}
公共类相对优先{
公共静态void main(字符串[]args){
int N=Integer.parseInt(args[0]);//网格的维度
int i,j;
int r;//i除以j时的余数
对于(i=1;i这就是使用调试器可以帮助您解决问题的地方
在循环内部,你改变了i
和j
,这意味着它们永远不会到达N
,因此你有一个无限循环
我建议您不要更改这些变量,而是使用两个新变量,最好是有意义的名称。这就是使用调试器可以帮助您解决问题的地方
在循环内部,你改变了i
和j
,这意味着它们永远不会到达N
,因此你有一个无限循环
我建议您不要更改这些变量,而是使用两个新变量,最好是有意义的名称。您在while循环中更改了I
和j
for (i = 1; i <= N; i++) {
for (j = 1; j <= N; j++) {
int ii = i, jj = j;
do { // Using Euclidean algorithm
r = ii % jj;
ii = jj;
jj = r;
} while (r > 0);
if (ii == 1) System.out.print("*");
else System.out.print(" ");
}
System.out.println();
}
for(i=1;i您在while循环中更改了i
和j
for (i = 1; i <= N; i++) {
for (j = 1; j <= N; j++) {
int ii = i, jj = j;
do { // Using Euclidean algorithm
r = ii % jj;
ii = jj;
jj = r;
} while (r > 0);
if (ii == 1) System.out.print("*");
else System.out.print(" ");
}
System.out.println();
}
(i=1;i)的