[英]nested while-loop that doesn't match the condition
我正在嘗試制作一個打印以下數字的程序:
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
該代碼是
public class JavaApplication8 {
public static void main(String[] args) {
int i = 1;
int j = 1;
while (i <= 2 && j <= 4) {
while (i <= 2 && j <= 4) {
System.out.printf("%d%d\n", i, j);
j++;
}
j = j - 4;
i++;
System.out.printf("%d%d\n", i, j);
j++;
}
}
}
程序打印此
1 1
1 2
1 3
1 4
2 1
2 2
2 3
2 4
3 1
我不知道為什么這種情況發生在內部條件背后,而我說它必須小於或等於2
由於最后的println
語句(如下所示)是無條件的,因此將輸出最后的3 1
。 因此,將i
增至3后,您仍然可以運行該語句。 while
條件僅在之后生效,這就是為什么它在打印完之后就停止的原因。
public class JavaApplication8 {
public static void main(String[] args) {
int i = 1;
int j = 1;
while (i <= 2 && j <= 4) {
while (i <= 2 && j <= 4) {
System.out.printf("%d%d\n", i, j);
j++;
}
j = j - 4;
i++;
System.out.printf("%d%d\n", i, j); // <=== This one
j++;
}
}
}
不過,整個過程可以大大簡化:
public class JavaApplication8 {
public static void main(String[] args) {
for (int i = 1; i <= 2; ++i) {
for (int j = 1; j <= 4; ++j) {
System.out.printf("%d%d\n", i, j);
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.