对于我的CS类中的作业,我必须接受浮点数的输入,将它们保存在数组中,然后显示它们并将它们加在一起以获得浮点数的总和。目前我在获得浮点数的总和方面遇到了问题。
下面的代码应该可以工作,但是我得到了一个错误:“无法添加对象和int”。
我的代码是:
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner; // load the scanner utility
class Lab7 {
public static void main(String[] args) {
double n;
double s;
Scanner input = new Scanner( System.in ); //define the scanner
List L = new ArrayList();
s=0.0;
n=1.0;
// read in the floats
while ( n != 0.0 )
{
System.out.println("Please input a number");
n = input.nextFloat();
if ( n != 0.0) L.add(n);
System.out.println("read in " + n);
}
for (int i=0; i< L.size(); i= i+1)
{
System.out.println("List contains " + L.get(i));
s = s + L.get(i);
System.outprintln("Sum of nunbers " + s);
}
}// of main
} // of Lab7
2条答案
按热度按时间5ktev3wc1#
应该是
jv4diomz2#
我已经修复了代码并将新版本放在下面。
主要问题是你使用
ArrayList
的方式。你使用的是所谓的“原始类型”。请参阅此链接了解为什么这是坏的信息:What is a raw type and why shouldn't we use it?。基本上,您应该为ArrayList
提供一个类型参数,如:ArrayList<String>
.然而,在这种情况下,甚至不需要
List
。我们可以简单地在每个新数字输入时保持总和的运行总数。我更改了代码来实现这一点。我还重命名了你的变量。你不应该命名像
n
或x
这样的东西。命名变量时要描述它们的用途。这会让你或你寻求帮助的人更容易(就像StackOverflow上的人一样)阅读你的代码。让你的代码容易理解几乎和让它正确工作一样重要,尤其是当你开始做更大的项目时。如果你绝对必须在这个实验中使用数组(请记住,无论如何都不需要它,这样做的唯一原因是如果实验明确地说你必须这样做),你可以使用以下方法: