Catch gama Try no puede reconocer longitud de la matriz en la instrucción if

Eliot Shedlock:

Tenía un programa que tiene el usuario introduzca hasta 5 números en una matriz, entonces decide cuál es el valor mínimo es de esos números. He intentado añadir un intento de captura a ella, pero que no reconocerá la i de la [].

He tratado de inicialización en la sentencia if, pero no funcionó.

    import java.util.*;

    public class Main {

      public static void main(String[] args)
      {
         double numbers[] = new double[5];

         boolean done = false;
         java.util.Scanner sc = new java.util.Scanner(System.in);

         System.out.println("\tFind the min value ");
         System.out.println();

         while(!done)
     {
      try
      {
                System.out.println("Enter 5 double numbers:");

                for(int i = 0; i < numbers.length; i++)

                numbers[i] = sc.nextDouble();
                System.out.println();

                if (numbers[i] < 0) throw new InputMismatchException();
                done = true;
      }
              catch(InputMismatchException e)
              {
                System.out.println("");
                System.out.println("Error, enter a number greater than 0");
                sc.nextLine();
                System.out.println("");
              }
         }
           System.out.println("The min value is " +min(numbers)+ ".");
           System.out.println();
      }
        public static double min(double[] array) 
        {
          double min = array[0];

          for(int i = 1; i < array.length; i++)

          if (array[i] < min)
          min = array[i];
          return min;
     }
    }

Sólo quiero que el intento de captura para capturar cualquier números introducidos que son menores que 0

Manish Patel:

Esto se debe a que se ha perdido {y }en su condición de bucle.

Prueba este código:

import java.util.*;

public class Main {

  public static void main(String[] args) {
     double numbers[] = new double[5];

     boolean done = false;
     java.util.Scanner sc = new java.util.Scanner(System.in);

     System.out.println("\tFind the min value ");
     System.out.println();

     while(!done) {
         try {
            System.out.println("Enter 5 double numbers:");

            for(int i = 0; i < numbers.length; i++) {
                numbers[i] = sc.nextDouble();
                System.out.println();

                if (numbers[i] < 0) throw new InputMismatchException();
                done = true;
            }
         } catch(InputMismatchException e) {
              System.out.println("");
              System.out.println("Error, enter a number greater than 0");
              sc.nextLine();
              System.out.println("");
         }
     }
     System.out.println("The min value is " +min(numbers)+ ".");
     System.out.println();
  }

  public static double min(double[] array) {
      double min = array[0];

      for(int i = 1; i < array.length; i++) {
         if (array[i] < min)
         min = array[i];
      }

      return min;
  }
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=332522&siteId=1
Recomendado
Clasificación