2011-06-21 255 views
0

我使用此代碼:java,處理嵌套循環?

int contadorA = 1, contadorB = 1; 

while (contadorA <= 5) { 
    println ("banking " + contadorA); 
    contadorA++; 

    while (contadorB <= 3) { 
     println ("month " + contadorB); 
     contadorB++; 
    } 
} 

代碼打印這樣的:

銀行1
月1
月2
月3
銀行2
銀行3
銀行4
銀行5

和我需要打印:

銀行1
月1
月2
月3
銀行2
月1
月2
月3
銀行3
月1
第2月
第3月
銀行4
月1
月2
月3
銀行5
月1
月2
月3

+0

檢查您的變量的作用域。 –

回答

0

你是不是重新循環內的第二計數器。你需要這樣做:

int contadorA = 1, contadorB = 1; 

while (contadorA <= 5) { 

    println ("banking " + contadorA); 
    contadorA++; 

    contadorB = 1; 
    while (contadorB <= 3) { 

    println ("month " + contadorB); 
    contadorB++; 


    } 

} 
+0

謝謝!也就是說,我需要重新設置第二個循環的計數器(我是編程新手) – user779848

+1

我看不出這個勺子餵食的地方。 @Vineet雷諾茲已經給出了正確的提示,該運動員應該跟進。這樣他就能更好地理解他的錯誤。 – nikhil

+0

我確實同意。我發佈代碼的唯一原因是因爲我忽略了作業標籤。 @Vineet Reynolds確實發佈了正確的信息,可能會導致正確的答案。 – Tremmors

4

我不會發布的代碼,我的道歉。

我給個提示。在內部循環中,輸入時不會重置計數器。這意味着contadorB在執行第一個外部循環後的值是4,並且它不會再次進入內部循環。

這是另一個提示。通過在調試器中單步執行代碼(和觀看contadorB)的價值,如果你還沒有明白我先前暗示。

0

在首先聲明int contadorB = 1; while循環而之前第二while循環。換句話說,你只是重置第一個while循環的每次迭代變量。

0

該代碼會指出你的問題:

int contadorA = 1, contadorB = 1; 

while (contadorA <= 5) { 
    println ("banking " + contadorA); 
    contadorA++; 

    while (contadorB <= 3) { 
     println ("month " + contadorB); 
     contadorB++; 
    } 
    println ("contadorA: " + contadorA + "\n contadorB: " + contadorB + "\n"); 
}