对于我的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
答案 0 :(得分:0)
我修复了代码并将新版本放在下面。
主要问题是您使用ArrayList
的方式。你使用的是一种&#34;原始类型&#34;。请参阅此链接,了解有关错误的原因:What is a raw type and why shouldn't we use it?。基本上,您应该为ArrayList
提供类型参数,例如:ArrayList<String>
。
但是,在这种情况下甚至不需要List
。输入每个新数字时,我们可以简单地保持总和的总和。我改变了代码来代替。
我也重命名了你的变量。您永远不应该说出n
或x
之类的内容。命名变量描述它们用于什么的变量。这使您或您寻求帮助的人(如StackOverflow上的人)更容易阅读您的代码。使代码易于理解与使其正常工作一样重要,尤其是当您开始处理更大的项目时。
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 currentNumber = 1.0;
double sum = 0.0;
Scanner input = new Scanner( System.in ); //define the scanner
// read in the floats
while ( currentNumber != 0.0 )
{
System.out.println("Please input a number");
currentNumber = input.nextFloat();
System.out.println("read in " + currentNumber);
sum = sum + currentNumber;
}
System.outprintln("Sum of nunbers " + sum);
}// of main
} // of Lab7
如果您必须在本实验中使用阵列(请记住,不需要以任何方式使用阵列,唯一的理由是,如果实验室明确表示您必须这样做),您可以使用以下:
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 currentNumber = 1.0;
double sum = 0.0;
Scanner input = new Scanner( System.in ); //define the scanner
ArrayList<Float> floats = new ArrayList<>(); //notice how we give a type argument
// read in the floats
while ( currentNumber != 0.0 )
{
System.out.println("Please input a number");
currentNumber = input.nextFloat();
System.out.println("read in " + currentNumber);
floats.add((float) currentNumber);
sum = sum + currentNumber;
}
System.outprintln("Sum of nunbers " + sum);
}// of main
} // of Lab7