[英]Java won't print inside a for loop
我最近一直在玩Java,我遇到了一個問題:
每當我將System.out.println()
或System.out.print()
放在for循環中時,控制台上都沒有輸出。
例如:
package experimental;
public class Main {
public static void main(String args[]) {
recur();
}
public static void recur() {
for(int x = 0; x == 10; x++) {
for(int y = 0; y == 10; y++) {
System.out.print(x + "-" + y + " ");
}
}
}
}
輸出:
*crickets*
循環條件不true
,甚至有...開始x == 10
是不是true
當x = 0
。 如果是的話,你也會注意到第二個循環條件也不是true
開始; 類似地, y == 10
不是真的,因為y = 0
。 你可能會把這種狀況與一個人混淆停下來 。
for(int x = 0; x == 10; x++) {
for(int y = 0; y == 10; y++) {
如果您希望x
, y
與[ y
不同,請更改為以下內容:
for(int x = 0; x < 10; x++) {
for(int y = 0; y < 10; y++) {
......或[0,10]的以下內容:
for(int x = 0; x <= 10; x++) {
for(int y = 0; y <= 10; y++) {
你的問題在於for循環中的條件。 它說:
以x = 0開始,循環,x為10
這不是真的,所以循環立即退出。
您需要將其替換為:
for (int x = 0; x < 10; x++)
(假設你要循環10次)
那些for
循環永遠不會循環。
只要終止條件為真,它們才會循環。 作為終止條件,您有: x == 10
, y == 10
。 由於將x
, y
初始化為0
,因此這些條件永遠不會成立,並且循環是無操作。
我想你想要,例如: for (int x = 0; x < 10; x++)
for(int x = 0; x == 10; x++) {
for(int y = 0; y == 10; y++) {
System.out.print(x + "-" + y + " ");
}
}
x == 10
條件將失敗,循環將中斷,蟋蟀。 與其他循環條件相同。
您的代碼永遠不會到達for循環的主體,因為在啟動循環之前,條件x==10
已經為假。 我認為你應該寫x != 10
而不是。 內循環也是如此。
由於每個人都已經回答了你的問題,我想補充一些調試技巧。 首先,我建議使用NetBeans或Eclipse等IDE。 這兩個中的調試器將允許您逐行逐步執行代碼以查看其執行方式。 這樣做,您很快就會注意到您的for循環已被完全跳過。 如果您不能或不願意這樣做。 接下來最好的事情是在代碼中添加SOP( System.out.println()
)。 即使它只是一個簡單的消息,例如"Here"
來告訴您在代碼中的位置,這個額外的輸出可以幫助您跟蹤邏輯中的錯誤。
你不能使用x == 10
。 比較需要以這種方式表達:
for(int x = 0; x <= 10; x++) {
for(int y = 0; y <= 10; y++) {
System.out.print(x + "-" + y + " ");
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.