好了,所以问题是这样的:

我想输入一堆数字,一个随机数,例如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/

10-11 23:03
查看更多