我在我正在做的任务中为以下问题编写了一个程序。
“编写一个程序来读取以 0 到 100 范围内的整数百分比给出的考试成绩列表。显示总成绩和每个字母成绩类别中的成绩数量,如下所示:90-100 是 A, 80-89为B,70-79为C,60-69为D,0-59为F。使用负分作为哨兵值,表示输入结束。”
例如输入: 98,87,86,85,85,78,73,72,72,70,66,63,50,-1
输出应该是:
输入的成绩总数为 13
A =1
B=4
C=5
D=2
F=1
//This is the code I wrote.//
import java.util.Scanner;
public class grade
{
public static void main(String[] args)
{
int A_grades = 0;
int B_grades = 0;
int C_grades = 0;
int D_grades = 0;
int F_grades = 0;
int count=0;
Scanner in = new Scanner(System.in);
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
int score = in.nextInt();
while(score>0)
{
count++;
if(score>=90 && score<=100)
A_grades++;
else if(score>=80 && score<=89)
B_grades++;
else if(score>=70 && score<=79)
C_grades++;
else if(score>=60 && score<=69)
D_grades++;
else if(score>=0 && score<=59)
F_grades++;
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
score = in.nextInt();
} //end while
System.out.println("Total number of grades :"+ count);
System.out.println("Total number of A grades :"+ A_grades);
System.out.println("Total number of B grades :"+ B_grades);
System.out.println("Total number of C grades :"+ C_grades);
System.out.println("Total number of D grades :"+ D_grades);
System.out.println("Total number of F grades :"+ F_grades);
} // end main
} // end class
下面是程序的输出。
以 0 到 100 范围内的整数百分比形式输入考试分数:
88 98 78 68 55 45 -1
以 0 到 100 范围内的整数百分比形式输入考试成绩:
以 0 到 100 范围内的整数百分比形式输入考试分数:
以 0 到 100 范围内的整数百分比形式输入考试分数:
以 0 到 100 范围内的整数百分比形式输入考试分数:
以 0 到 100 范围内的整数百分比形式输入考试分数:
以 0 到 100 范围内的整数百分比形式输入考试分数:
总年级数:6
A级总数:1
B级总数:1个
C级总数:1个
D级总数:1
F级总数:2个
在输出中不断重复“以 0 到 100 范围内的整数百分比输入考试成绩:”
如何编写代码使其只显示一次?
如果您不想多次看到此消息,请从循环中删除
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
。
它连续打印出来的原因是因为您正在使用的“Scanner”类不会暂停输入。
我建议你使用 BufferedReader。
我假设您每次都需要要求用户输入一个值。因此,如果您删除文本来解决多重显示问题,用户将不会收到该消息。
我附上了一段代码,其中的 BufferedReader 可以解决您的问题:
//This is the code I wrote.//
import java.util.Scanner;
import java.io.*;
import java.io.BufferedReader;
import java.util.*;
public class Grade{
public static void main(String[] args){
int A_grades = 0;
int B_grades = 0;
int C_grades = 0;
int D_grades = 0;
int F_grades = 0;
int count=0;
try{
//Scanner in = new Scanner(System.in);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
int score = Integer.parseInt(br.readLine());
while(score>0){
count++;
if(score>=90 && score<=100)
A_grades++;
else if(score>=80 && score<=89)
B_grades++;
else if(score>=70 && score<=79)
C_grades++;
else if(score>=60 && score<=69)
D_grades++;
else if(score>=0 && score<=59)
F_grades++;
System.out.println("Enter exam score as integer percentage in range 0 to 100 :");
score = Integer.parseInt(br.readLine());
} //end while
}catch(IOException ioe){}
System.out.println("Total number of grades :"+ count);
System.out.println("Total number of A grades :"+ A_grades);
System.out.println("Total number of B grades :"+ B_grades);
System.out.println("Total number of C grades :"+ C_grades);
System.out.println("Total number of D grades :"+ D_grades);
System.out.println("Total number of F grades :"+ F_grades);
} // end main
} // end class
希望这对您有帮助并回答您的问题:)
让我知道结果
谢谢大家的回答。
这是最终的代码,它运行完美。
import java.util.Scanner;
public class grade
{
public static void main(String[] args)
{
int A_grades = 0;
int B_grades = 0;
int C_grades = 0;
int D_grades = 0;
int F_grades = 0;
int count=0;
Scanner in = new Scanner(System.in);
System.out.println("Enter exam score as integer percentage in range 0 to 100");
System.out.println("And enter a negative score at the end of the list :");
int score = in.nextInt();
while(score>0)
{
count++;
if(score>=90 && score<=100)
A_grades++;
else if(score>=80 && score<=89)
B_grades++;
else if(score>=70 && score<=79)
C_grades++;
else if(score>=60 && score<=69)
D_grades++;
else if(score>=0 && score<=59)
F_grades++;
score = in.nextInt();
} //end while
System.out.println("Total number of grades :"+ count);
System.out.println("Total number of A grades :"+ A_grades);
System.out.println("Total number of B grades :"+ B_grades);
System.out.println("Total number of C grades :"+ C_grades);
System.out.println("Total number of D grades :"+ D_grades);
System.out.println("Total number of F grades :"+ F_grades);
} // end main
} // end class
老师想要找到学生的最低、最高和平均成绩 课程。编写一个 Java 程序,要求用户输入成绩(-1 表示 结束条目)。该计划将帮助他/她发现: 最低等级 最高等级 平均成绩