所以我正在努力学习Java。我写了一个简单的程序,我使用for循环并获取用户输入。
public static void main (String[] args)
{
Scanner scan = new Scanner(System.in);
int number, numberOfValues, totalNumberOfRuns = 0;
System.out.println("How many values?");
numberOfValues = scan.nextInt();
for (int w = 0; w < numberOfValues; w++)
{
System.out.println("Enter a number:" + "(" + numberOfValues-- + ")");
number = scan.nextInt();
totalNumberOfRuns += number;
}
System.out.println("The total is " + totalNumberOfRuns);
}
}
结果是:
How many values?
5
Enter a number:(5)
4
Enter a number:(4)
74
Enter a number:(3)
54
The total is 132
我想要做的是继续Enter a number:(1)
我知道将numberOfValues
放入for循环中的System.out.println
是错误的。我只是在试验看看会发生什么。但是我没有想法。
任何帮助将不胜感激:)
答案 0 :(得分:4)
您可以使用numberOfValues - w
代替numberOfValues--
。这将解决问题。
System.out.println("Enter a number:" + "(" + (numberOfValues - w) + ")");
答案 1 :(得分:1)
您需要将循环修复为:
for (int w = 0; w < numberOfValues; w++)
{
System.out.println("Enter a number:" + "(" + (numberOfValues-w) + ")");
number = scan.nextInt();
totalNumberOfRuns += number;
}
您的代码存在以下问题:
w=0
到w=numberOfValues-1
。numberOfValues--
来减少numberOfValues的值。 w=0, numberOfValues = 5
w=1, numberOfValues = 4
w=2, numberOfValues = 3
现在循环结束了。
列出项目
答案 2 :(得分:0)
如果不需要递减numberOfValues
的值,则可以使用w
并按以下方式编写for loop
-
for (int w = numberOfValues; w>0; w--){
System.out.println("Enter a number:" + "(" + w + ")");
...
}
这将按预期工作。
答案 3 :(得分:0)
您的for循环条件不正确。使用numberOfValues > 0
代替w < numberOfValues
。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int number, numberOfValues, totalNumberOfRuns = 0;
System.out.println("How many values?");
numberOfValues = scan.nextInt();
for (int w = 0; numberOfValues > 0; w++) {
System.out.println("Enter a number:" + "(" + numberOfValues-- + ")");
number = scan.nextInt();
totalNumberOfRuns += number;
}
System.out.println("The total is " + totalNumberOfRuns);
}