我正在尝试制作一个程序,该程序将采用三种不同的数据输入。第一名学生编号,第二名 A 分数,第三名 B 分数。输入数据后,程序将再次循环并要求第一个输入(学号),依此类推。一旦用户输入了所需的数据集,他们就可以通过在第一个输入(学生编号)上输入 0 来打破循环,因为这标志着一组新数据的开始。
我如何让它打印出用户输入的多个数据集?
这就是输入和输出的样子:
程序输入:
Student Number: --> 12345678
A Mark: --> 30
B Mark: --> 60
Student Number: --> 62445677
A Mark: --> 40
B Mark: --> 70
Student Number: --> 0
预期输出:
sn = 12345678 B = 60 A = 30 mark = 33.0
sn = 62445677 B = 70 A = 40 mark = 33.0
目前只能打印1个数据集:
import java.util.Scanner;
import java.util.*;
public class test
{
public static void main (String[] args) {
Scanner reader = new Scanner(System.in);
// 0 To end the loop and run output! Repeats until 0 is entered!
// Arraylist for each of the Vars!
// Validation
// Have to initialise - 1 So it doesn't terminate
int studentNumber = 1;
int studentNumberPassed = 12;
int aMark = 0;
int bMark = 0;
int markTotal;
double markAverage;
boolean terminate = false;
while (terminate == false) {
studentNumber = reader.nextInt();
if (studentNumber == 0) {
terminate = true;
break;
}
// Once 0 is inputted to terminate it overwrites.
studentNumberPassed = studentNumber;
aMark = reader.nextInt();
bMark = reader.nextInt();
}
markTotal = aMark + bMark;
// Cast to double before calculating
markAverage = (double) markTotal / 2;
//Can also use out.format
System.out.printf("sn = %d ex = %d cw = %d mark = %.1f",
studentNumberPassed, aMark, bMark, markAverage);
}
}
最佳答案
Enter multiple datasets (Inputs) then print
它可以满足您的输入和输出结果,但是有很多方法可以实现多个数据集(输入)然后打印。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test {
private static List<String> storeResult;
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
// 0 To end the loop and run output! Repeats until 0 is entered!
// Arraylist for each of the Vars!
// Validation
int studentNumber = 1; //Have to initialise - 1 So it doesn't terminate
int studentNumberPassed = 12;
int cwMark = 0;
int examMark = 0;
boolean terminate = false;
storeResult = new ArrayList<String>();
while (terminate == false) {
System.out.print("Student Number: --> ");
studentNumber = reader.nextInt();
if (studentNumber == 0) { // Once 0 is inputted to terminate it overwrites.
terminate = true;
displayResult();
return;
}
studentNumberPassed = studentNumber;
System.out.print("CW Mark: --> ");
cwMark = reader.nextInt();
System.out.print("EX Mark: --> ");
examMark = reader.nextInt();
result(studentNumberPassed, cwMark, examMark);
}
}
private static void result(int studentNumberPassed, int cwMark, int examMark) {
int markTotal;
double markAverage;
markTotal = examMark + cwMark;
// Cast to double before calculating
markAverage = (double) markTotal / 2;
String str = "sn = " + studentNumberPassed + " ex = " + examMark + " cw = " + cwMark + " mark = " + markAverage;
storeResult.add(str);
}
private static void displayResult() {
for(int data=0;data<storeResult.size();data++){
System.out.println(""+storeResult.get(data));
}
}
}
关于java - 输入多个数据集(输入)然后打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46552601/