我正在创建一个程序,它将生成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) {
请帮忙吗?
答案 0 :(得分:0)
您无法在另一个方法中定义方法。首先关闭main
方法,然后启动RandomDataAnalyzer
:
public static void main(String[] args) {
// Contents of main.
}
public int RandomDataAnalyzer(int Rando) {
// Contents of RandomDataAnalyzer.
}
答案 1 :(得分:0)
这是一个有效的版本。请注意原始更改:
Rando
,NumList
:命名约定是用大写字母开始类,接口,枚举(即类型),以及带小写大小写字母的方法,字段和变量; int Rando
参数:它的值从未使用过(仅分配给它)numList
中的值,而不是生成新数字。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
}
}
我希望这就是你要找的东西。