while(hasnext)
它没有添加输入数字。我想使用{{1}}运行吗?
感谢您的帮助。
答案 0 :(得分:0)
这是真的,因为你试图将一个数字设置为一个变量多次到snum。另据我所知,
do{
System.out.println("enter more numbers:");
snum = ip.nextDouble();
}
while(fnum > 0);
应该是无限循环。是什么阻止了这个定义永远无法运行?你永远不会改变fnum,因此它会永远运行。
我不确定你想如何处理fnum,但是如果这是你正在寻找的那么你可以简单地减去循环中任何数量的fnum,这将阻止这个无限循环。然后现在修复更改snum的值而不覆盖它,创建另一个var ans = 0.现在你可以这样做:
double ans = 0;
do{
System.out.println("enter more numbers:");
snum = ip.nextDouble();
ans += snum;
}
while(fnum > 0);
System.out.println(ans); //This will produce the sum of all snum numbers
答案 1 :(得分:0)
我对你要做的事感到困惑,所以澄清会有所帮助。如果您只是想在一起添加数字,然后在用户完成后打印总数,那么这样的事情应该有效:
double sum;
while((newNum = readDouble()) != 0){ //entering 0 will stop the loop
sum += newNum;
}
System.out.println("Total sum: " + sum);
private double readDouble(){
System.out.println("Enter a number");
return scanner.nextDouble();
}