この特定のメソッドの出力を見ると、私は混乱します。私はそれが何をしているのかを正確に理解しようとしています。
これは方法です:
for (int i = 0; i < 4; i ++) {
for (int j = 0; j < 9; j++) {
if (j==5) {
break;
}
if ((j==0) || (i==0)) {
continue;
}
if (!((j*i % 3) != 0)) {
System.out.println(j*i);
}
}
}
出力が何であるかは知っていますが、それがどのように機能しているのかまだわかりません。そのため、ここで質問しています。したがって、このメソッドは j が 5 に達するまで通過し、その後中断します。
次に i をインクリメントします。j は 0 です。J != 5 なので壊れません。j == 0 なので続けます。しかし、J は 3 になり、I は 1 です。ここで迷っています。3はどこから来たの??
これを使用して、舞台裏で何が起こっているかを印刷していました
public static void tester() {
for (int i = 0; i < 4; i ++) {
for (int j = 0; j < 9; j++) {
if (j==5) {
System.out.println("j == 5, breaking");
break;
}
if ((j==0) || (i==0)) {
System.out.println("J is " + j);
System.out.println("I is " + i);
System.out.println("j or i == 0, continuing");
continue;
}
if (!((j*i % 3) != 0)) {
System.out.println("J is " + j);
System.out.println("I is " + i);
System.out.println(j*i);
}
}
System.out.println();
}
}
出力は次のとおりです。
J is 0
I is 0
j or i == 0, continuing
J is 1
I is 0
j or i == 0, continuing
J is 2
I is 0
j or i == 0, continuing
J is 3
I is 0
j or i == 0, continuing
J is 4
I is 0
j or i == 0, continuing
j == 5, breaking
J is 0
I is 1
j or i == 0, continuing
J is 3
I is 1
3
j == 5, breaking
J is 0
I is 2
j or i == 0, continuing
J is 3
I is 2
6
j == 5, breaking
J is 0
I is 3
j or i == 0, continuing
J is 1
I is 3
3
J is 2
I is 3
6
J is 3
I is 3
9
J is 4
I is 3
12
j == 5, breaking