Java 阵列存储和打印阵列
我必须创建一个程序,要求用户输入一系列数字,并将输入保存在一个数组中。然后,允许用户在数组中搜索数字并打印数组。我被卡住了,因为它不允许我在数组中存储输入。我还需要帮助打印阵列 我正在上Java课,我们使用的教科书一点帮助都没有,有人对一本好的Java教科书有什么建议吗 这是我目前的代码:Java 阵列存储和打印阵列,java,arrays,Java,Arrays,我必须创建一个程序,要求用户输入一系列数字,并将输入保存在一个数组中。然后,允许用户在数组中搜索数字并打印数组。我被卡住了,因为它不允许我在数组中存储输入。我还需要帮助打印阵列 我正在上Java课,我们使用的教科书一点帮助都没有,有人对一本好的Java教科书有什么建议吗 这是我目前的代码: import java.util.Scanner; public class MyContainer { private int [] values; private int size; pu
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;”格式存储之前和执行时都会出现一个错误,表示预期为“]”,这是表达式的非法开始。我不确定原因。