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;
}
}