好的,那么问题是:
我想输入一堆数字,一组随机的数字,比如说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循环stop,并且我再次输入相同的数字列表(1 3 4 2 5 0),它将输出3和2,这是我的数字列表中的偶数-所有这些都让我更加烦恼。
有什么想法吗?
发布于 2011-09-25 04:08:51
将所有的代码块包括if代码块都用大括号括起来!
这一点:
if (foo)
doSomething();
doSomethingElse();不是像你想的那样工作,它的表现是
if (foo) {
doSomething();
}
doSomethingElse();相反,将所有块都用大括号括起来,这样就不会有任何疑问:
if (foo) {
doSomething();
doSomethingElse();
}发布于 2011-09-25 04:11:02
这看起来像是一个学习练习,所以我将给您一些提示,而不是直接告诉您。
if语句及其结果的位置。发布于 2011-09-25 04:15:15
在循环中调用input.nextInt()两次,只打印其中一次。实际上,这就像跳过输入中的每隔一个数字。更改代码以将下一个输入存储到一个变量中,然后检查该变量。我怀疑这不是您的实际代码,因为如果没有将notZero设置为false作为检查条件的结果,它将只执行一次循环。顺便说一句,notZero是一个糟糕的变量名。它应该是语义的,而不是表示它的期望值。如果输入值不是输入结束指示符,您还希望只打印输入值。
Scanner input = new Scanner(System.in);
System.out.println("Alright, what?");
boolean endOfInput = false;
while (!endOfInput) {
int next = input.nextInt();
if (next == 0) {
System.out.println("End of sequence");
endOfInput = true;
}
else {
System.out.println(next);
}
}https://stackoverflow.com/questions/7541571
复制相似问题