好了,所以问题是这样的:
我想输入一堆数字,一个随机数,例如5个数字。在该数字的末尾,我将添加第六个数字0,这将是循环结束的信号。
为此,我将要做。
我运行我的程序,这是我的输入:
1 3 4 2 5 0
所以我要打印程序
1个
3
4
2
5“序列结束”
这是我的代码,据说可以做到这一点(所有这些都在main方法中):
Scanner input = new Scanner(System.in);
System.out.println("Alright, what?");
boolean notZero = true;
while (notZero)
{
System.out.println(input.nextInt());
if (input.nextInt() == 0)
System.out.println("End of sequence");
notZero = false;
}
这些是我得到的结果:
http://i.imgur.com/4Th43.jpg
有趣的是,如果我没有while循环停止,然后再次输入相同的数字列表(1 3 4 2 5 0),它将输出3和2,这是我的数字列表中的偶数-以及所有这进一步困扰了我。
有任何想法吗?
最佳答案
将所有块包装起来,包括如果将块装在花括号中!
这个:
if (foo)
doSomething();
doSomethingElse();
不能像您认为的那样正常工作
if (foo) {
doSomething();
}
doSomethingElse();
而是将所有块用大括号括起来,以便毫无疑问:
if (foo) {
doSomething();
doSomethingElse();
}
关于java - Java中的While循环不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7541571/