Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.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 以4为一组对未知数量的整数求和_Java_Arraylist - Fatal编程技术网

Java 以4为一组对未知数量的整数求和

Java 以4为一组对未知数量的整数求和,java,arraylist,Java,Arraylist,我的问题是,在运行我的代码后,我意识到它不会削减它。它当前列出了studentName(string)arrayList的所有元素和studentGrade(double)arrayList的所有元素。 问题是,给每个学生分配四个等级,每组四个等级必须分别相加(然后我将平均)。如果我将studentGrade arrayList中的所有元素相加。。。这并不意味着每个学生都是独立的。我应该从这里去哪里?我一直在努力想办法 package arrayList; import java.util.Sc

我的问题是,在运行我的代码后,我意识到它不会削减它。它当前列出了studentName(string)arrayList的所有元素和studentGrade(double)arrayList的所有元素。 问题是,给每个学生分配四个等级,每组四个等级必须分别相加(然后我将平均)。如果我将studentGrade arrayList中的所有元素相加。。。这并不意味着每个学生都是独立的。我应该从这里去哪里?我一直在努力想办法

package arrayList;
import java.util.Scanner;
import java.util.ArrayList;

public class TestGrades {

public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> studentName = new ArrayList<String>(); 
ArrayList<Double> studentGrade = new ArrayList<Double>();
boolean loop = true;

while (loop) {

    System.out.println(" Please Enter Student Name");
    String student = scanner.nextLine();

        if(student.equals("C"))
        {
          break;    
        }
        else
        {
          studentName.add(student);
        }


    System.out.println("Please enter Student Grade");
    for (int j = 0; j < 4; j++) {

        Double grade = Double.parseDouble(scanner.nextLine());
        studentGrade.add(grade);  
    }    

    System.out.println(studentName);
    System.out.print(studentGrade);
  }
}
}
包数组列表;
导入java.util.Scanner;
导入java.util.ArrayList;
公营考试成绩{
公共静态void main(字符串[]args){
扫描仪=新的扫描仪(System.in);
ArrayList studentName=新建ArrayList();
ArrayList studentGrade=新建ArrayList();
布尔循环=真;
while(循环){
System.out.println(“请输入学生姓名”);
字符串student=scanner.nextLine();
如果(学生等于(“C”))
{
打破
}
其他的
{
studentName.add(学生);
}
System.out.println(“请输入学生成绩”);
对于(int j=0;j<4;j++){
Double grade=Double.parseDouble(scanner.nextLine());
学生成绩。添加(成绩);
}    
System.out.println(学生姓名);
系统输出打印(学生成绩);
}
}
}

听起来您需要一个学生类,该类包含一个学生姓名和该学生的分数数组。然后,您可以在该类中创建一个方法,该方法汇总该学生的所有成绩,并在循环遍历学生列表时调用该方法



或者是一个多维数组,其中学生是一个索引,第二个维度是每个索引的分数数组。不要走这条路线,除非它是学校作业,而且你还没有学习课程和OOP,因为维护和阅读这条路线很糟糕。

不清楚问题是什么:你输入了一个名字和四个年级;求平均值,清空数组,直到完成为止。好的,问题是用户可以输入任意数量的学生。每个学生将输入4个等级。这意味着可以输入任意数量的等级。我不知道如何自动将未知数量的分数相加,一次4个分数。此外,这些分数应该以某种方式附加到学生身上。如果他们需要“附加”到学生身上,那么你应该附加他们,或者像安德鲁建议的那样使用一个班级,或者使用一个简单的学生名=>分数地图。但眼前的问题可以按照我的建议解决。因为你的要求很模糊,我不明白为什么它不起作用。很抱歉,它太模糊了。很难清楚地说出我想做什么。用户输入学生和每个学生4个等级,而不是我。他们可以输入任意数量的学生。如果不涉及用户输入,这对我来说很容易。然后假装没有用户输入:编写一个没有用户输入的解决方案。数据进入系统的方式与处理方式是正交的。谢谢。我必须研究如何创造所有这些对不起,我还是那么迷茫。让学生上课很有吸引力,但问题是,似乎我需要为每一组4个年级设置一个单独的属性。由于这是用户输入,因此可以有任意数量的等级集。有没有办法让程序在输入一组新的等级时自动创建一个新数组或arrayList?@StevieJ321您可以随时创建数组。是的,我可以手动创建任意数量的数组。但是,每一组4个年级都需要一个单独的考试。因此,当用户输入一个新学生时,它们似乎需要自动生成。