需要一个循环,重复执行用户输入的次数。

4
我需要帮助完成这个任务。下面是程序的需求:
提示用户输入迭代次数,然后循环该次数。每次循环时,程序应提示用户输入一个数字,并将其加到运行总数中。完成后打印运行总数。
我无法让程序循环用户输入的次数。我知道这是一个简单的修复,但我似乎无法解决它。我是否使用了错误的循环语句?
Scanner guess = new Scanner(System.in);

int count =0;
int sum=0;
int num;

System.out.println("Enter a number");
num = guess.nextInt();

for(count =0; count <= num; count++)
{
    sum +=num;
    System.out.println("Your results are:"+sum);
}

1
你在循环中从未要求输入一个数字,我建议首先添加这个功能。 - Keppil
1
你的循环将从0到num(包括num)进行迭代。试着数一下它会循环多少次。 - Pshemo
2个回答

5
如果您从零开始,那么您将需要进行更改。
for(count =0; count <= num; count++)

为了

for(count =0; count < num; count++)

因为它从0开始,所以这是第一次迭代,1是第二次,依此类推。

另外,在循环中需要每次都询问用户。因此,您需要在循环中执行以下操作:

sum += guess.nextInt();

最后,你不想每次都打印总和,只需要在循环结束时打印总和。因此,在循环之后打印总和。
你可能认为使用sum += num会要求用户输入另一个数字,但num只是用户输入的第一个数字(它不会改变)。您需要在每次迭代中获取用户的输入。

谢谢您的解释。很好,易于修复。 - TitanC
是的,我正要这么做!你必须等待5分钟才能接受一个答案,我现在已经这样做了。非常感谢您的帮助。我还有另一个需要帮助的程序,很快就会发布。 - TitanC
1
也许你应该先自己尝试一下?我的意思是,既然你正在上某种计算机科学课程,你应该尝试使用课堂上学到的知识来自己解决问题。(Stackoverflow 更像是最后的手段) - jessechk
是的,我将会借鉴您的解决方案所学,看看能否做出类似的东西。当我自己编写程序成功时,我感到很开心。到目前为止,我在这门课程中得了A!这是一门Java编程和逻辑课程。 - TitanC

1
您的for循环语句中应该使用<而不是<=,否则会多循环一次;还应该在循环内部提示输入要添加的数字,并包含适当的代码来跟踪运行总和。
类似这样:
Scanner guess = new Scanner(System.in);

int count =0;
int sum=0;
int num, N;

System.out.println("How many numbers will you enter?");
N = guess.nextInt();

for(count =0; count < N; count++)
{
    System.out.println("Enter a number");
    num = guess.nextInt();
    sum +=num;
}

    System.out.println("The sum of the numbers entered is:"+sum);

是的,我知道。但这并不是我的问题的解决方案。 - TitanC
1
@Chris:如果你知道这个,为什么你的代码还有这个bug?而且你为什么会问如何使用错误的循环语句?是的,你正在使用错误的语句,这就是你必须解决它的方法。在你的问题中,你没有问其他任何事情。 - JB Nizet
对于编辑,基本上与我的答案相同(但由于您正在编辑,可能您还没有看到我的答案)。 - jessechk
1
@jaybob - 是的,我在没有看到你的答案的情况下写了这个(iPad 不太适合快速编辑...)。基本上同意。 - Floris
是的,我之前看到过这个扩展答案。类似于jaybob的解决方案。很高兴看到有更多的解决方法。谢谢。 - TitanC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接