Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JAVA程序中更改一维数组中所选元素的值_Java_Arrays_For Loop_Methods - Fatal编程技术网

在JAVA程序中更改一维数组中所选元素的值

在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

这是我的程序,它将成绩(元素)存储到成绩册(数组)中

我基本上是想让用户能够在成绩册(数组)中更改他们想要的任何等级(元素),只要他们愿意(循环基本上)。我已经给了用户输入索引的选项(应该从1开始,而不是从0开始,以避免用户混淆),但是在这一步之后,我被卡住了。我不知道如何在数组中搜索元素,然后让用户替换它

以下是我目前的代码:

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()替换为从用户读取字符串所使用的任何方法。