Java不会在for循环中打印

时间:2012-08-08 23:21:18

标签: java 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*

7 个答案:

答案 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 == 10y == 10。由于您将xy初始化为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 + " ");
   }
}