2011-09-22 40 views
2

我运行该程序,我看到的只是Netbeans下面的空白区域。该程序是否以无限循环结束?我怎么知道?

起初我以为它没有运行,然后我偶然发现了四个程序,Netbeans崩溃了。所以我的第一个问题是:它是一个无限循环,如果是的话,为什么?

从我可以看到它是int = 00>=0所以应该为0 + 0运行...等待,如果int numberint sum都为零,那么这是否意味着程序无法继续,因为它被套牢循环零?但是为什么它不显示0次输出而不是空白?

public static void main(String[] args) { 

    int number = 0; 
    int sum = 0; 
    while (number >= 0 || number <= 10) { 
     sum += number; 
     number += 3; 
     System.out.print(" Sum is " + sum); 
    } 
} 
+5

尽管主要问题已得到解答,但我确实想指出为什么它不在循环过程中打印任何内容。 Java不打印任何东西到控制台,直到它碰到一行的结尾,无论是从System.out.println()还是打印字符串中包含的“\ n”。由于您正在使用打印,但不使用回车符,因此在程序退出之前您不会看到任何输出。我希望这有助于未来的调试。 – Dogmatixed

+0

@Dogmatixed很好的解释 – OscarRyz

回答

6

想想自己的逻辑。数字何时不会大于或等于0?你知道你有一个或者是一个操作符(||),并且你知道如果右边或者左边的任何一个语句都是真的,那么它就是真的。也许你想在那里使用不同的操作员?

再次思考逻辑,因为它不会骗你。事实上,你应该用铅笔和纸张从0开始,看看纸上发生了什么,因为这会告诉你你的错误。

+0

我完全没有看到或声明..我一直在传递它,该死的我觉得愚蠢。 – Renuz

4

是的,它是一个无限循环,你可能是指:

while (number >= 0 && number <= 10) 

否则,该数量将始终大于或等于0时,而且会一直循环一次。

编辑:

number >= 0甚至是不必要的。它将与刚工作:

while (number <= 10) 
+0

是啊,我只是没有想到或声明...现在感觉有点笨,但谢谢你 – Renuz

0

是的,这将是一个无限循环 ||表示或

while (a || b) { 
    //do something 
} 

您只需满足任何一个条件(无论是a,b,还是两者)来执行while循环。

至于为什么一堆空白而不是一堆零,我不知道。

0

你在调试器中执行它!

这是值得学习如何使用调试器,特别是如果你没有手动发现错误。

相关问题