我目前正在高中学习计算机科学课程,这是我第一次编程(自我开始以来已有2周)。我目前已经完成了我的计划,但是有一些细节困扰着我。我应该创建一个程序,可以计算单个标记的平均值,然后计算用户先前输入的所有平均标记。但是我注意到了一些困扰我的事情,这就是如果我在被要求输入名字时输入一个数字,它会认为该数字是一个名字。此外,当我要求5个标记时,程序将运行良好,直到发生错误,如果我不小心输入一个字母或单词。我已经做了一些研究并找到了系统扫描仪,但是我仍然不理解循环情况下的概念。这是我到目前为止所拥有的。任何关于如何纠正这一点的建议或解释都将不胜感激!
import java.io.*;
public class loopingEx6Final {
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
double average, totalaverage = 0;
int Mark, Marktotal=0, marktotalsum=0, count=0;
String strName, strMark;
System.out.println("This program will calculate an individual's personal average and then calculate the class average whn instructed.");
System.out.println("Please type (finish) in order to calculate class average.");
System.out.println("Please enter a name.");
strName = br.readLine ();
while (!strName.equals("finish")){
System.out.println("The follwing will calculate the average five marks of "+ strName +".");
System.out.println("Please enter 5 marks.");
count++;
for (int i=0;i<5;i++) {
Mark = Integer.parseInt(br.readLine());
Marktotal= Marktotal + Mark;
}
average = Marktotal/5;
System.out.println(strName+"'s average is "+average);
Marktotal= 0;
System.out.println("\n"+"Please enter a name.");
strName = br.readLine ();
totalaverage=(totalaverage+average)/count;
}
System.out.println("The class average of all input grades is:");
System.out.println(totalaverage);
System.out.println();
System.out.println("Thank you for using the program.");
}
}
答案 0 :(得分:0)
使用java.util。*中的Scanner,您可以执行以下操作来读取标记的输入。
Scanner inputs = new Scanner(System.in); // instead of Buffered Reader
int marks, total;
for(int i=0; i<5; i++){
if(inputs.hasNext()){ // if the input is an integer
marks = inputs.nextInt(); // use the input
total += marks;
} else {
inputs.readLine(); // read the invalid int input and ignore
i--; // iterate the loop for once more
}
}
您可以使用inputs.readLine();
来读取字符串输入..
如果您需要有关扫描仪的更多参考资料,请尝试使用
http://www.java-made-easy.com/java-scanner.html
http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html