为了账号安全,请及时绑定邮箱和手机立即绑定

Java - 每个输入记录多个用户输入

Java - 每个输入记录多个用户输入

森栏 2023-09-13 10:56:01
该程序应该询问学生姓名。然后,对于每个学生,将记录四个成绩。然后再次迭代,直到用户输入“C”退出循环。然后打印结果。它仅显示最后输入的四个元素。我认为我的 for 循环不会实现我想要的。我可能需要 .forEach 吗?此后,我还必须分别对每个学生的每四个数字求和。每个学生必须有不同的 arrayList 吗?这是我到目前为止所拥有的:package arrayList;import java.util.Scanner;import java.util.ArrayList;public class TestGrades {public static void main(String[] args) {Scanner sc = new Scanner(System.in);ArrayList<String> studentName = new ArrayList<String>(); boolean loop = true;while (loop) {  System.out.println(" Please Enter Student Name");  sc.nextLine();      String student = sc.nextLine();        if(student.equals("C"))        {          break;            }        else        {          studentName.add(student);        }        ArrayList<Double> studentGrade = new ArrayList<Double>();    System.out.println("Please enter Student Grade");    for (int j = 0; j < 4; j++) {        Double grade = sc.nextDouble();        studentGrade.add(grade);      }        System.out.println(studentName);    System.out.print(studentGrade);    }}}我想按条目顺序打印每个 arrayList 的元素,首先是学生姓名,然后是学生成绩。.forEach 有帮助吗?
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

对于初学者,我建议使用该类获取用户输入Console。还:

  1. 第一次调用时sc.nextLine(),您会从用户那里获取输入,但不会存储它。

  2. 你应该初始化你的ArrayList<Double> studentGrade循环外。每次循环输入时,它都会创建一个新列表,并且您将丢失上一个循环的学生成绩。

运行这个,如果你必须Scanner再次更改,请使用Scanner.

import java.util.Scanner;

import java.util.ArrayList;

import java.io.Console;


public class Test {


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);

  }

}

}


查看完整回答
反对 回复 2023-09-13
  • 1 回答
  • 0 关注
  • 45 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信