首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java计算平均平均值

java计算平均平均值
EN

Stack Overflow用户
提问于 2014-02-21 11:19:18
回答 5查看 1.4K关注 0票数 0

我正在尝试执行以下java赋值,每件事情似乎都很好,除非我放置了一个number<4或>10,它会同时打印“无效的等级!”“你没有输入任何数据!”我只想打印“无效分数!”我试着修好它,但我做不到。有谁能帮我吗?

谢谢,

作业:创建一个程序,要求考试结果,并计算平均成绩。分数是4到10之间的浮点数。程序要求分数直到输入负数为止。如果用户给出的分数不是介于4到10之间的数字,则文本“无效等级!”将打印在屏幕上,程序要求另一个等级。最后,程序在屏幕上打印输入的等级数和它们的平均平均值,如示例打印所示。如果没有输入分数,则通知“您没有输入任何年级”。是唯一印在屏幕上的东西。

提示:双类型变量将用于存储平均值的值。

程序被写入一个名为Average的类。

示例输出

程序计算输入等级的平均值。以负整数结束。

代码语言:javascript
运行
复制
Input a grade (4-10): 5
Input a grade (4-10): 6,5
Input a grade (4-10): 7,5
Input a grade (4-10): 7
Input a grade (4-10): 0
Invalid grade!
Input a grade (4-10): -4

4 grades inputted.

Average of the grades: 6.5

代码语言:javascript
运行
复制
import java.util.Scanner;
public class apples {

   public static void main(String[] args) {

      int inputNumber=0;   
      int sum;           
      int count;         
      double average;    



      sum = 0;
      count = 0;


      Scanner reader = new Scanner(System.in);
      System.out.println("Program calculates the average of inputted grades.");
      System.out.println("Finish with a negative integer.");
      System.out.print("Input a grade (4-10): ");
      inputNumber = reader.nextInt();


      while (inputNumber > 0 && inputNumber>=4 && inputNumber<=10) {
         sum += inputNumber;   
         count++;              
         System.out.print("Input a grade (4-10): ");
         inputNumber = reader.nextInt();

      }

      if (inputNumber<4 || inputNumber>10) {
          System.out.println("Invalid grade!");
      }

      if (count==0) {
          System.out.print("You didn't enter any data!");
      }
      else {
         average = ((double)sum) / count;
         System.out.println();
         System.out.println(count + " grades inputted.");
         System.out.print("Average of the grades: "+ average);
      }

   } 

} 
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-02-21 11:33:27

是的,一个if - else在这里会有帮助,但你把它放在哪里也很重要。

代码语言:javascript
运行
复制
    while (inputNumber > 0) {
        if (inputNumber<4 || inputNumber>10) {
            System.out.println("Invalid grade!");
        } else {
            sum += inputNumber;
            count++;
        }
        System.out.print("Input a grade (4-10): ");
        inputNumber = reader.nextInt();
    }
票数 0
EN

Stack Overflow用户

发布于 2014-02-21 11:22:05

在第二个if之前放一个其他的,所以只有在第一个没有完成的情况下才会完成:

代码语言:javascript
运行
复制
if (inputNumber<4 || inputNumber>10) {
    System.out.println("Invalid grade!");
} else if (count==0) {
    System.out.print("You didn't enter any data!");
}
票数 3
EN

Stack Overflow用户

发布于 2014-02-21 11:27:51

当你用负整数结束时,inputNumber总是小于4,所以

代码语言:javascript
运行
复制
if (inputNumber<4 || inputNumber>10) {
      System.out.println("Invalid grade!");
  }

永远都是真的。

将其更改为以下内容(稍微容易阅读):

代码语言:javascript
运行
复制
 do {    
      System.out.print("Input a grade (4-10): ");
      inputNumber = reader.nextInt(); 
      if (inputNumber<4 || inputNumber>10) {
         break ; // 
      }
    sum += inputNumber;   
    count++;              


  }while (count <= 4) {

  if (count==0) {
      System.out.print("You didn't enter any data!");
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21932974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档