随机数据分析器

时间:2015-10-23 20:03:10

标签: java

我正在创建一个程序,它将生成1到1000之间的100个随机数,将它们添加到列表中,然后总结这些数字。这是我的代码:

public class Iteration {

    public static void main (String [] args){


    private int RandomDataAnalyzer(int Rando) { 

        Random rand = new Random();
        List<Integer> NumList = new ArrayList<Integer>();
        for (int i=0;i<=100;i++){
        Rando = rand.nextInt(1001);
        NumList.add(Rando);

        }

        int sum = 0;
        for (int i=0; i<100; i++)
        {
            Rando = rand.nextInt(100);
            sum = sum + Rando;
        }

        return sum;
        }


    }

}

这是我的错误:

H:\Java\Iteration.java:12: error: illegal start of expression
    private int RandomDataAnalyzer(int Rando) {

    ^
H:\Java\Iteration.java:12: error: ';' expected
    private int RandomDataAnalyzer(int Rando) { 
                                  ^
H:\Java\Iteration.java:12: error: ';' expected
    private int RandomDataAnalyzer(int Rando) { 

请帮忙吗?

4 个答案:

答案 0 :(得分:0)

您无法在另一个方法中定义方法。首先关闭main方法,然后启动RandomDataAnalyzer

public static void main(String[] args) {
  // Contents of main.
}

public int RandomDataAnalyzer(int Rando) {
  // Contents of RandomDataAnalyzer.
}

答案 1 :(得分:0)

这是一个有效的版本。请注意原始更改:

  • 不要在方法中定义方法:它是非法的语法。
  • RandoNumList:命名约定是用大写字母开始类,接口,枚举(即类型),以及带小写大小写字母的方法,字段和变量;
  • 全部删除了int Rando参数:它的值从未使用过(仅分配给它)
  • 使用numList中的值,而不是生成数字。
  • 添加了一种方法,说明在这种情况下不需要使用这样的列表; &#39;列表&#39;仍然存在1000个数字,但仅在概念上存在。
import java.util.*;

public class Iteration {

    public static void main (String [] args) {
        int sum = new Iteration().randomDataAnalyzer();
        System.out.println(sum);
    }


    private int randomDataAnalyzer() { 
        Random rand = new Random();
        List<Integer> numList = new ArrayList<Integer>();
        for ( int i=0; i<100; i++ )
        {
            numList.add( 1 + rand.nextInt(1000) );
        }

        int sum = 0;
        for ( int i=0; i<numList.size(); i++ )
        {
            sum = sum + numList.get(i);
        }

        return sum;
    }

    // Note that the above method has the same effect as this one:
    private int moreEfficient() {
        Random rand = new Random();
        int sum = 0;
        for ( int i=0; i < 100; i++)
            sum += 1 + rand.nextInt(1000);
        return sum;
    }

}

答案 2 :(得分:0)

我将假设这不是一个家庭作业问题,而且你正在自己学习Java。如果我错了,给我一个工作版本感到羞耻。但我的印象是你会从中学习:

public class gpaCalc 
{
    static Random rand;
    static int rando;

    public static void main(String[] args)
    {
        ArrayList<Integer> NumList = new ArrayList<>(); // use ArrayList

        for (int i=0;i<=100;i++)
        {
          rand = new Random();
          rando = rand.nextInt(1001);
          NumList.add(rando);
        }

        int sum = 0;
        for (int i=0; i<100; i++)
        {
            rando = NumList.get(i); // get is "opposite" of put--get the value put into the list earlier
            sum = sum + rando;
        }

        System.out.println(sum);
    }
}  

似乎没有必要使用名为randomDataAnalyzer的单独方法。

答案 3 :(得分:0)

欢迎使用StackOverflow。

让我们从第一个问题开始:randomDataAnalyzer方法中正在定义main。哪个是错的,你应该在同一级别实际定义它。 考虑到这一点,您还应该在此函数之前添加static单词,因为此方法是类的一部分,而不是元素的一部分。没有必要使用简单的方法创建“迭代”类的新元素。 最后,但并非最不重要的是,你正在错误地循环遍历arraylist。你甚至没有打电话给它。正如您现在所见:

import java.util.*;

public class Iteration
{
    public static void main(String[] args)
    {
        ArrayList<int> numberList = new ArrayList<int>(); // we define the arraylist
        for (int i = 0; i < 100; i++)
        {
            numberList.add(new Random().nextInt(1001)); // we add a random number to the list
        }
        // finally, after the 100 values were added..
        System.out.println(randomDataAnalyzer(numberList)); // we show the output
    }

    public static int randomDataAnalyzer(ArrayList<int> list) // we will send this function an arraylist which will get the Σ.
    {
        int sum = 0;
        for (int value : list) // this is how we loop through foreach value in the list
        {
            sum += value; // which means sum = sum + value.
        }
        return sum; // after looping and summing up, here'll be the result
    }
}

我希望这就是你要找的东西。