2011-06-21 200 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"); 
}