Java 阵列存储和打印阵列

Java 阵列存储和打印阵列,java,arrays,Java,Arrays,我必须创建一个程序,要求用户输入一系列数字,并将输入保存在一个数组中。然后,允许用户在数组中搜索数字并打印数组。我被卡住了,因为它不允许我在数组中存储输入。我还需要帮助打印阵列 我正在上Java课,我们使用的教科书一点帮助都没有,有人对一本好的Java教科书有什么建议吗 这是我目前的代码: import java.util.Scanner; public class MyContainer { private int [] values; private int size; pu

我必须创建一个程序,要求用户输入一系列数字,并将输入保存在一个数组中。然后,允许用户在数组中搜索数字并打印数组。我被卡住了,因为它不允许我在数组中存储输入。我还需要帮助打印阵列

我正在上Java课,我们使用的教科书一点帮助都没有,有人对一本好的Java教科书有什么建议吗

这是我目前的代码:

import java.util.Scanner;
public class MyContainer  {

  private int [] values;
  private int size;

 public MyContainer() {
    values = new int[50];
    size=0;
  }

  public static void main(String [] args)
  {

//load()
Scanner input = new Scanner(System.in);
double sum = 0;
System.out.print("Enter a positive number, negative number will end entry.");
double number = input.nextDouble();
int count = 0;
double average = 0;
int numofinput = 0;

 while (number >= 0)
{
  count++;
  numofinput ++;
  sum += number;
  System.out.print("Enter a positive number, negative number will end entry.");
  number = input.nextDouble();
}
 sum = sum + number;
 average = sum/numofinput;
    System.out.print("The average of the numbers as of right now is "
+ average);

}

//search()

您真的应该搜索类似的内容,关于如何使用这样的数组,有许多示例:

简要总结了我所做的更改:

1) 你有3个变量做同样的事情,所以我去掉了其中的2个。(输入和计数)

2) 您正在循环询问用户数字,但从未将数字添加到数组中

3) 我在循环中添加了一个条件,使循环在50个数字之后停止,这样就不会超过数组的大小

4) 已将大部分main移到另一个方法。Java(和大多数其他语言)不允许静态方法访问非静态变量。因此main创建MyContainer的一个新实例,然后调用一个进行添加的方法

5) 我添加了一个printlist方法,它使用循环遍历列表

导入java.util.Scanner

公共级MyContainer{

private double[] values;
private int size;
public MyContainer() {
    values = new double[50];
    size = 0;
}

public void run(){
    // load()
    Scanner input = new Scanner(System.in);
    double sum = 0;
    System.out.print("Enter a positive number, negative number will end entry.");
    double number = input.nextDouble();
//int count=0;//已删除计数 双平均=0

    while (number >= 0 && size < values.length) {
        values[size] = number; //Line added
        size++;
        sum += number;
        System.out.print("Enter a positive number, negative number will end entry.");
        number = input.nextDouble();
    }

    sum = sum + number;
    average = sum / size;
    System.out.println("The average of the numbers as of right now is " + average);

}

public void printList(){
    System.out.print("[");
    for (int i = 0; i <= size; i++){
        System.out.print(values[i]+", ");
    }
    System.out.println("end]");
}

public static void main(String[] args) {
    MyContainer cont = new MyContainer();
    cont.run();
    cont.printList();
}
while(数字>=0&&size对于(int i=0;i类似于
中的
值[count]=number;
,而
循环应将数字存储在数组中。如果不是,您能否展开“不允许我将输入存储在数组中”为了打印数组,你可以首先考虑一个类似的方法来阅读数字。既然你事先知道有多少数字要打印出来,你可以在教科书中查找< <代码> >循环。in()
,它是静态的,因此无法从那里访问
值。+1:将大部分代码放入非静态成员函数,从而允许访问
值,而
值是无法从
main()
访问的,因为
main()
是静态的。感谢您的帮助!这真的很有帮助。Simon-我尝试使用“values[count]=number;”格式存储之前和执行时都会出现一个错误,表示预期为“]”,这是表达式的非法开始。我不确定原因。