【问题标题】:Write a program with while loop code in it to calculate the amount of exam scores enter by a user编写一个带有while循环代码的程序来计算用户输入的考试分数
【发布时间】:2015-06-21 08:00:24
【问题描述】:

我为正在执行的任务中的以下问题编写了一个程序。

“编写一个程序来读取以 0 到 100 范围内的整数百分比形式给出的考试分数列表。显示总成绩数和每个字母等级类别中的成绩数,如下所示:90- 100是A,80-89是B,70-79是C,60-69是D,0-59是F。用负分作为sentinel值,表示输入结束。”

例如,输入: 98,87,86,85,85,78,73,72,72,70,66,63,50,-1

输出应该是:

输入的总成绩为 13

A =1

B's=4

C's=5

D's=2

F's=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:”

如何编写代码只显示一次?

【问题讨论】:

  • 调查你的while循环和它的条件。

标签: java if-statement while-loop do-while


【解决方案1】:

如果您不想多次看到此消息,请从循环中删除 System.out.println("Enter exam score as integer percentage in range 0 to 100 :");

【讨论】:

  • 删除它,你不认为你在删除用户友好性吗?
【解决方案2】:

它不断打印出来的原因是因为您使用的“扫描仪”类不会暂停输入。

我建议您使用 BufferedReader。

我假设您每次都需要要求用户输入一个值。因此,如果您删除文本以解决多显示问题,用户将不会收到消息。

我附上了代码的 sn-p,带有一个 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

希望这可以帮助您并回答您的问题:)

告诉我结果

【讨论】:

    【解决方案3】:

    谢谢大家的回答。

    这是最终代码,它运行良好。

     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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 2011-12-29
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-11-30
      • 2020-01-15
      相关资源
      最近更新 更多