JAVAwhile循环

JAVAwhile循环,java,loops,while-loop,Java,Loops,While Loop,问题: 考虑这个数据序列:“3115522466738”。任何与前一个值相同的值都被视为连续重复。在本例中,有三个这样的连续副本:第二个和第三个5s以及第二个6。请注意,最后的3不是连续的重复,因为它前面有一个7。编写一些代码,使用循环读取以负数结尾的非负整数序列。当代码完成执行时,将打印遇到的连续重复数。在这种情况下,将打印3 正确答案: int firstNumber, secondNumber, duplicates; secondNumber = duplicates = 0; firs

问题:

考虑这个数据序列:“3115522466738”。任何与前一个值相同的值都被视为连续重复。在本例中,有三个这样的连续副本:第二个和第三个5s以及第二个6。请注意,最后的3不是连续的重复,因为它前面有一个7。编写一些代码,使用循环读取以负数结尾的非负整数序列。当代码完成执行时,将打印遇到的连续重复数。在这种情况下,将打印3

正确答案:

int firstNumber, secondNumber, duplicates;
secondNumber = duplicates = 0;
firstNumber = stdin.nextInt();
while (stdin.hasNextInt() && firstNumber > 0 && secondNumber > 0) 
{
    secondNumber = stdin.nextInt();
    if (firstNumber == secondNumber)
    {
                duplicates++;
    }
    firstNumber = secondNumber;
}
System.out.println(duplicates);
我的问题:

既然已经有了
stdin.nextInt()
,为什么还要使用
stdin.nextInt()

“hasNextInt()”是一个返回布尔值的函数,用于确定数据结构中是否有其他可用元素。如果返回true,则再次迭代while循环是有意义的

“nextInt()”返回数据结构中的下一个int以供使用

stdin.hasNextInt()
如果有一个整型值可以读取,则返回true


如果没有值就绪,例如如果没有更多的用户输入要读取,则返回false

hasNextInt
返回布尔值,即是否有下一个数字。因此,如果有下一个号码,那么你可以打电话给
nextInt

因为
hasNextInt
决定了打电话给
nextInt
是否有意义。似乎更适合发表评论,主要是因为你没有真正解释为什么要同时使用这两个号码,而这正是所问的实际问题。@Matthew不同意。他回答了这个问题,不知道为什么它会出现在这里的评论中。谢谢加拿大程序员的回答。谢谢马修的回复。我想投你一票,但我没有足够的分数。谢谢,公平地说,我在马特的评论后做了编辑。虽然这个问题的答案很简单,没有更多的补充,但我是一个新用户。请原谅我在Stackoverflow和Java方面的新手技能。非常感谢你的帮助。祝你有美好的一天