Java - 记录每个另一个输入的多个用户输入
Java - record multiple user inputs per another input
此程序应要求输入学生姓名。然后,对于每个学生,将记录四个成绩。然后再次迭代,直到用户输入"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 的元素,首先是 studentName,然后是 studentGrade。
.forEach 有帮助吗?
对于初学者,我建议使用 Console
class 让用户输入。
还有:
- 您第一次调用
sc.nextLine()
时,您正在从
用户并且永远不会存储它。
- 你应该初始化你的
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);
}
}
}
此程序应要求输入学生姓名。然后,对于每个学生,将记录四个成绩。然后再次迭代,直到用户输入"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 的元素,首先是 studentName,然后是 studentGrade。 .forEach 有帮助吗?
对于初学者,我建议使用 Console
class 让用户输入。
还有:
- 您第一次调用
sc.nextLine()
时,您正在从 用户并且永远不会存储它。 - 你应该初始化你的
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);
}
}
}