在数组中输入Floats然后将它们一起添加

时间:2016-10-03 21:25:47

标签: java

对于我的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

1 个答案:

答案 0 :(得分:0)

我修复了代码并将新版本放在下面。

主要问题是您使用ArrayList的方式。你使用的是一种&#34;原始类型&#34;。请参阅此链接,了解有关错误的原因:What is a raw type and why shouldn't we use it?。基本上,您应该为ArrayList提供类型参数,例如:ArrayList<String>

但是,在这种情况下甚至不需要List。输入每个新数字时,我们可以简单地保持总和的总和。我改变了代码来代替。

我也重命名了你的变量。您永远不应该说出nx之类的内容。命名变量描述它们用于什么的变量。这使您或您寻求帮助的人(如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