在JAVA程序中更改一维数组中所选元素的值
这是我的程序,它将成绩(元素)存储到成绩册(数组)中 我基本上是想让用户能够在成绩册(数组)中更改他们想要的任何等级(元素),只要他们愿意(循环基本上)。我已经给了用户输入索引的选项(应该从1开始,而不是从0开始,以避免用户混淆),但是在这一步之后,我被卡住了。我不知道如何在数组中搜索元素,然后让用户替换它 以下是我目前的代码:在JAVA程序中更改一维数组中所选元素的值,java,arrays,for-loop,methods,Java,Arrays,For Loop,Methods,这是我的程序,它将成绩(元素)存储到成绩册(数组)中 我基本上是想让用户能够在成绩册(数组)中更改他们想要的任何等级(元素),只要他们愿意(循环基本上)。我已经给了用户输入索引的选项(应该从1开始,而不是从0开始,以避免用户混淆),但是在这一步之后,我被卡住了。我不知道如何在数组中搜索元素,然后让用户替换它 以下是我目前的代码: import java.lang.reflect.Array; import java.util.Scanner; public class NewGradeBoo
import java.lang.reflect.Array;
import java.util.Scanner;
public class NewGradeBook {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//Ask user to enter the amount of grades
int grades = NumberReader.readPositiveInt(input, "Please enter the number of grades: ",
"Error: Invalid data entered");
int numOfGrades = grades;
double[] mogrades = new double[numOfGrades];
for (int i = 0; i < mogrades.length; i++) {
//Allows user to enter each individual grade
System.out.println("Enter grade (limit to two decimal places)" + (i + 1) + ": ");
//Stores grades in array
mogrades[i] = NumberReader.readPositiveDouble(input, "Enter grade " + (i+1) + " :", "Invalid data entered");
}
System.out.println("The Grade book contains: ");
printArray(mogrades);
System.out.println("___________________________");
//Ask user if what grade they would like to change
int index = NumberReader.readPositiveInt(input,
"Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input");
}
public static void printArray(double[] mogrades) {
for (int i = 0; i < mogrades.length; i++) {
System.out.print("Grade " + (i + 1) + " is: " + mogrades[i] + ", ");
}
}
}
import java.lang.reflect.Array;
导入java.util.Scanner;
公共课新成绩册{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
//要求用户输入等级数量
int grades=NumberReader.readPositiveInt(输入“请输入分数:”,
“错误:输入的数据无效”);
int numOfGrades=等级;
double[]mogrades=新的double[numOfGrades];
对于(int i=0;i
任何帮助都将不胜感激 结构应类似于此:
System.out.println("___________________________");
System.out.println("Make changes? Enter Y or N");
String makeChanges = System.console().readLine();
while (makeChanges.equals("Y")) {
//Ask user if what grade they would like to change
int index = NumberReader.readPositiveInt(input,
"Enter the index of the grade to be changed: (1 to " + grades + ") : ", "Invalid index input");
System.out.println("Enter grade (limit to two decimal places)" + index + ": ");
//offset the index by one
mogrades[index - 1] = NumberReader.readPositiveDouble(input, "Enter grade " + index + " :", "Invalid data entered");
System.out.println("Make changes? Enter Y or N");
makeChanges = System.console().readLine();
}
}
您希望在他们仍希望进行更改时继续循环。Ugh。有必要解释一下你的整个计划吗?当然,你被某个特定的问题所困扰,可以把它缩小到这个范围。嗯,我想我应该再等一段时间,也许可以删除这个问题,并尝试在不涉及太多细节的情况下重新发布。编辑它就可以了。它可能会被搁置,您将有机会在它关闭之前对其进行编辑。我不建议删除并重新发布。@Coco请在重新发布之前查看我的答案。我觉得应该会有帮助。嗯,我缩小了一点,希望它能帮助那些观看的人。谢谢你的提示。:)我尝试实现您的代码,但引用(I+1)中的变量“I”时出现了一个错误,似乎它没有声明?Idk我应该申报吗?我试试看。不知道你的意思,但我最终通过写int I初始化I;在for循环之外,该循环消除了错误,但不可调整,在运行程序后,它询问“进行更改?输入Y或N”,但在NewGradeBook.main(NewGradeBook.java:37)的线程“main”java.lang.NullPointerException中出现一个错误打印,说明异常。它应该引用用户当前正在更改的数组中的索引,因此我对其进行了更改以反映这一点。尝试将其更改为引用索引,但在运行结束时仍以这些行结束。。。做出改变?在NewGradeBook.main(NewGradeBook.java:36)的线程“main”java.lang.NullPointerException中输入Y或N Exception,最后两行描述错误…:/只需要将System.console().readLine()替换为从用户读取字符串所使用的任何方法。