【问题标题】:Save number to a variable within a loop JAVA将数字保存到循环JAVA中的变量
【发布时间】:2013-10-23 18:19:04
【问题描述】:

我的程序需要一些成绩(来自记事本文件),然后是许多成绩百分比,并将它们保存为字母成绩。然后我打印出多少 A、B 等。我还需要找到最高和最低的成绩。

我想做的是在我的成绩检查循环结束时,将当前成绩保存到一个变量中,这样我以后可以比较所有变量,看看哪个是最高的和最低的。问题是,我不知道要输入多少个分数,所以我需要无限可能的变量。这是相关的代码部分:

  while (scores > 0 && in.hasNextInt()) {
     int grade = in.nextInt();

     if (grade >= 90) {
        A++;
     } else if (grade >= 80) {
        B++;
     } else if (grade >= 70) {
        C++;
     } else if (grade >= 60) {
        D++;
     } else {
        F++;
     }
     scores--;
     scoreTotals = (scoreTotals + grade);
  }  

我想做这样的事情:

    int variableCount = 1;
    int grade(variableCount) = grade;
    variableCount++;

然后继续比较我的循环所做的变量以确定最低和最高。

我已经通过使用变量查找了定义变量,但我没有找到任何东西。我走在正确的道路上吗?

【问题讨论】:

    标签: java loops variables


    【解决方案1】:

    我建议您创建两个变量来存储最高值和最低值,并且在您进行此循环时,如果您发现新的更大或更小的变量,请更新它们。

    试试:

    int highest = 0;
    int lowest = 100;
    while (scores > 0 && in.hasNextInt()) {
     int grade = in.nextInt();
    
     if (grade >= 90) {
        A++;
     } else if (grade >= 80) {
        B++;
     } else if (grade >= 70) {
        C++;
     } else if (grade >= 60) {
        D++;
     } else {
        F++;
     }
    
     if (grade > highest) {
        highest = grade;
     }
     if (grade < lowest) {
        lowest = grade;
     }
     scores--;
     scoreTotals = (scoreTotals + grade);
    }  
    

    【讨论】:

    • 这个想法比我的简单多了....谢谢!不过,我仍然很好奇,我提出的想法是否可能?您可以使用其他变量在循环中定义变量吗?
    • 注意范围。您在一组大括号、循环等中定义的任何内容都会在您离开它们时消失。事情必须事先定义才能持续下去。您可以在循环中定义变量。请注意,它们在每次迭代后重新开始。 (如果我错了,请有人纠正我 - 我知道有些语言有偏差)
    • 如果你的想法是在这个循环之后再次循环,然后找到最小值和最大值,是的,你可以。但是,循环额外的时间是浪费时间(效率较低)。
    【解决方案2】:

    你不需要把它弄得太复杂。

    int highest = Integer.MIN_VALUE;
    int lowest = Integer.MAX_VALUE;
    
    while (...)
    {
        // your existing stuff...
    
        highest = Math.max(highest, grade);
        lowest = Math.min(lowest, grade);
    }
    

    最后,highestlowest 将是最高和最低等级。

    【讨论】:

    • 我们还没有在课堂上学习数学方法,所以很遗憾,我不能使用它。不过谢谢!
    最近更新 更多