我最近一直在玩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*
答案 0 :(得分:9)
在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
与[0,10]不同,请更改为以下内容:
y
...或[0,10]的以下内容:
for(int x = 0; x < 10; x++) {
for(int y = 0; y < 10; y++) {
答案 1 :(得分:3)
您的问题与for循环中的条件有关。它说:
从x = 0开始,循环,而x是10
这不是真的,所以循环立即退出。
您需要将其替换为:
for (int x = 0; x < 10; x++)
(假设你要循环10次)
答案 2 :(得分:2)
那些for
循环永远不会循环。
只要终止条件为 true ,它们才会循环播放。作为终止条件,您有x == 10
,y == 10
。由于您将x
,y
初始化为0
,因此这些条件永远不会成立,并且循环是无操作。
我想你想要,例如:for (int x = 0; x < 10; x++)
答案 3 :(得分:2)
for(int x = 0; x == 10; x++) {
for(int y = 0; y == 10; y++) {
System.out.print(x + "-" + y + " ");
}
}
x == 10
条件将失败,循环将中断,蟋蟀。与其他循环条件相同。
答案 4 :(得分:1)
您的代码永远不会到达for循环的主体,因为条件x==10
在启动循环之前已经为false。我认为你应该写x != 10
代替。内循环也是如此。
答案 5 :(得分:0)
由于每个人都已经回答了你的问题,我想补充一些调试技巧。首先,我建议使用NetBeans或Eclipse等IDE。这两个中的调试器将允许您逐行逐步执行代码以查看其执行方式。这样做,您很快就会注意到您的for循环已被完全跳过。如果您不能或不愿意这样做。然后,下一个最好的事情是在代码中添加SOP(System.out.println()
)。即使它只是一个简单的消息,例如"Here"
来告诉您代码中的位置,这个额外的输出可以帮助您跟踪逻辑中的错误。
答案 6 :(得分:0)
您无法使用x == 10
。比较需要以这种方式表达:
for(int x = 0; x <= 10; x++) {
for(int y = 0; y <= 10; y++) {
System.out.print(x + "-" + y + " ");
}
}