为了账号安全,请及时绑定邮箱和手机立即绑定

如何使无效数字不添加到我的最终计算和计数器总数中?

如何使无效数字不添加到我的最终计算和计数器总数中?

芜湖不芜 2021-11-03 11:02:58
当我输入一个有非法分数提示的数字时,我的问题出现了,它仍然向我的计数器添加一个数字,并将该数字添加到总数中,因此平均值被丢弃。我一直在绞尽脑汁,尝试了几乎所有方法来弄清楚。代码有点草率,因为我还没有清理它,我只是想先整理一下移动部分。public class StudentSentinel {  public static void main(String[] args) {    double score;    double total = 0.0;    double average;    int scoreCount = 0;    // create the Scanner object. Name it stdin    Scanner stdin = new Scanner(System.in);    // title at the top of the output    System.out.println(" student score report");;    //   read the first score    System.out.printf("Enter a score  (1-100, -1 to quit)" +      ": ", scoreCount);    score = stdin.nextDouble();    scoreCount++;    while (score != -1.0) {      total += score;      System.out.printf("Enter a score  (1-100, -1 to quit)" +        ": ", scoreCount);      scoreCount++;      score = stdin.nextDouble();      if (score < -1)        System.out.println("Illegal score.  Try again");      else if (score > 100) {        System.out.println("Illegal score.  Try again");      }      // increment the loop counter    }    // end of for loop    average = total / scoreCount;    System.out.printf("\nThe average score for %d students is %8.2f\n",      scoreCount, average);  } // end of main    } // end of class definition
查看完整描述

2 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

首先检查分数是否合法,然后增加计数器并将其添加到您的total. 您还可以分配score和检查不是-1通过单个操作。并且始终使用大括号(即使它们是可选的)。喜欢,


// read the first score

System.out.printf("Enter a score  (1-100, -1 to quit)" + ": ", scoreCount);

while ((score = stdin.nextDouble()) != -1.0) {

    if (score < -1 || score > 100) {

        System.out.println("Illegal score.  Try again");

    } else {

        scoreCount++;

        total += score;

    }

    System.out.printf("Enter a score  (1-100, -1 to quit)" + ": ", scoreCount);

}


查看完整回答
反对 回复 2021-11-03
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

试试这个代码。这个对我有用:


public class StudentSentinel  {


 public static void main(String[] args) {

    double score;

    double total = 0.0;

    double average;

    int scoreCount = 0;


    // create the Scanner object. Name it stdin

    Scanner stdin = new Scanner(System.in);


    // title at the top of the output

    System.out.println(" student score report");;


    //   read the first score

    System.out.printf("Enter a score  (1-100, -1 to quit)" +

            ": ", scoreCount);


    score = stdin.nextDouble();

    scoreCount++;

    total += score;

    while (score != -1.0) {



        System.out.printf("Enter a score  (1-100, -1 to quit)" +

                ": ", scoreCount);

        scoreCount++;

        score = stdin.nextDouble();

        if (score < -1) {

            System.out.println("Illegal score.  Try again");

            continue;

        }else if (score > 100) {

            System.out.println("Illegal score.  Try again");

            continue;

        }

        total += score;

        // increment the loop counter

    }

    // end of for loop

    average = total / scoreCount;

    System.out.printf("\nThe average score for %d students is %8.2f\n",

            scoreCount, average);

} // end of main

}


查看完整回答
反对 回复 2021-11-03
  • 2 回答
  • 0 关注
  • 147 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信