如何获取用户输入的最小值和最大值? (JAVA)

时间:2016-02-09 17:01:57

标签: java variables max

我是Java新手,我正在尝试执行一个程序,要求用户:

  1. 学生人数(必须是1-35岁)。我设法做到了这一点。
  2. 每位学生的成绩(从0到100)。我设法做到了这一点,但如果有人介绍例如200,系统将通知不允许但变量仍将影响等级的平均值(我如何删除最后插入的变量?)。
  3. 最后我想给出一个我设法做到的平均值,但我找不到显示最高等级和最低等级的方法。
  4. public class ExtraClase {
        public static void main(String[] args) {
            Estudiantes estudiantes = new Estudiantes();
            estudiantes.numeroEstudiantes();
        }
    }
    
    public class Estudiantes {
        public void numeroEstudiantes() {
        System.out.print("Introduzca numero de estudiantes: ");
        Scanner cantidad = new Scanner(System.in);
        int number = cantidad.nextInt();
        int i=1;
        int total=0;
        int promedio;
        if(number>=1 && number<=35){
            while(i<=number){
               System.out.print("Ingrese la nota del 1-100: ");
               Scanner nota = new Scanner(System.in);
               int note = nota.nextInt();
               if(note>=1 && note<=100) {
               }else {
                   //como elimino la ultima nota introducida
                   System.out.println("Ingrese valor entre 1 y 100.");
                   number++;
               }
                  total=total+note;
                  i++;
            }
        }else {
               System.out.println("Digite numero entre 1 y 35.");
        } 
        promedio=total/number;
        System.out.println("El promedio de notas es: "+promedio);
        System.out.println("La nota mas alta es: ");
        System.out.println("La nota mas baja es: ");
        } 
    }
    

4 个答案:

答案 0 :(得分:0)

    if(note>=1 && note<=100) {
              total=total+note;
              i++;

     }else {
        //como elimino la ultima nota introducida
        System.out.println("Ingrese valor entre 1 y 100.");
        //there's no need to increment number here, just don't increment i if a variable has invalid value
     }

答案 1 :(得分:0)

2:您正在增加if语句之外的总数,以检查它是否有效。因此,您的无效值200不会被排除在外。

3:您需要在单独的变量中跟踪最大值和最小值。

答案 2 :(得分:0)

您需要移动行以添加到总计,并将i增加到if(note>=1 && note<=100)的第一部分。您还可以通过添加另外两个变量来跟踪最大/最小值:

public class Estudiantes {
    public void numeroEstudiantes() {
        System.out.print("Introduzca numero de estudiantes: ");
        Scanner cantidad = new Scanner(System.in);
        int number = cantidad.nextInt();
        int i=1;
        int total=0;
        //added min/max
        int baja=-1;
        int alta=-1;
        int promedio;
            if(number>=1 && number<=35){
            while(i<=number){
                System.out.print("Ingrese la nota del 1-100: ");
                Scanner nota = new Scanner(System.in);
                int note = nota.nextInt();
                if(note>=1 && note<=100) {
                    //check for min
                    if(note<baja || baja==-1){
                        baja = note;
                    }
                    //check for max
                    if(note>alta || alta==-1){
                        alta = note;
                    }
                    //moved from below
                    total=total+note;
                    i++;
                } else {
                    //como elimino la ultima nota introducida
                    System.out.println("Ingrese valor entre 1 y 100.");
                    number++;
                }
            }
        } else {
            System.out.println("Digite numero entre 1 y 35.");
        }
        promedio=total/number;
        System.out.println("El promedio de notas es: "+promedio);
        System.out.println("La nota mas alta es: " + alta);
        System.out.println("La nota mas baja es: " + baja);
    }
}

答案 3 :(得分:0)

再创建2个变量

//for your case if value is between 0 and 100
int min = 101;
int max = 0;

if(note>=1 && note<=100) {
          total=total+note;
          i++;

    //checking minimum value
    if(note < min)
       min = note;

   //checking maximum value
    if(note > max)
       max = note;

 }else {
    System.out.println("Enter integer between 1 and 100");
    //not valid no.
 }

最后打印min和max变量