嵌套 "For" 循环 java - 如何初始化变量 "i" 和 "j"?

Nested "For" loop java - how to initialize both variables "i" and "j"?

让我解释一下: 我有以下循环:

int i=0;
int j=0;
for (; i < 6; i++) {
  for (; j < 12 - i; j++) {
    **code**
  }
}
System.out.println(i * j);

这不是很好用。它确实打印了 72,但它不能很好地打印我在循环内绘制的圆圈。我正在尝试绘制 72 个圆,第一行将有 12 个圆,下面的线有 11 个,依此类推。 当我编写上面的代码时,它只绘制了 12 个圆圈的第一行,仅此而已。

我也尝试在营房内写 "int i=0" 和 "int j=0" 但它没有用,因为它显示 "the j variable might not have been initialized":

的错误

我只想画 6 条线(i 代表线 - 第一个循环)和每条线中的 12/11/10/9/8/7/6 个圆(j 代表那个 - 第二个循环)并计算循环外的 i*j。

谢谢。

您还必须在 for 循环中将 i 和 j 设置为零,否则每次 i 迭代都不会将 j 迭代器重置为零。

public class HelloWorld{
     public static void main(String []args){
        int i=0;
        int j=0;
         for (i=0; i < 6; i++) {
            System.out.println("i  " + i);
            for (j=0; j < 12 - i; j++) {
              System.out.println("j" + j);
            }
        }
        System.out.println(i * j);
     }
}

您可以在 for 循环声明中定义 ij 值:

int i, j;
for(i = 0; i < 6; i++){
    for (j = 0; j < 12 - i; j++) {
          **code**
    }
}
System.out.println(i * j);

如果在循环中初始化一个变量,它只能在该循环中看到。这称为作用域。我建议阅读 Java.

的循环作用域

您在两个循环开始之前声明了两个变量 ij,但是您应该将这些变量初始化到循环中,因为变量的值会随着循环增加,这很重要。

int i,j;
for (i=0; i < 6; i++) {
     for (j=0; j < 12 - i; j++) {
        **code**
     }
  }
  System.out.println(i * j);