elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
27 Mayo 2012, 23:39  


Tema destacado: Últimos eventos sobre seguridad/inseguridad

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java (Moderadores: Debci, Leyer)
| | | |-+  Problema con excepciones.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con excepciones.  (Leído 238 veces)
|Miguel|

Desconectado Desconectado

Mensajes: 182



Ver Perfil
Problema con excepciones.
« en: 5 Febrero 2012, 19:29 »

Hola, muy buenas a todos.
Tengo un problema... no sé porqué no me funciona este ejercicio... al compilar, llego hasta meter el número de elementos del array y ahí ya se queda sin hacer nada, ni da errores, ni sigue pidiendo datos (como debería) ni nada...

Os dejo el código a ver si veis algo. Estoy usando NetBeans 7.0.1
Código
/*
* Haz un programa que sume los elementos double de un array dinámico que le
* vamos pasando. Saltarán las excepciones oportunas cuando le pasemos números
* en formato inadecuado.
*/

package ejercicio050;
import java.util.Scanner;
 
public class Ejercicio050 {
 
   public static void main(String[] args) {
       String longitud;
       double suma=0;
       Scanner s=new Scanner(System.in);
       System.out.print("¿Cuántos elementos quieres? ");
       try{
           longitud=s.nextLine();
       }
       catch(Exception e){
           do{
               System.out.println("Longitud no válida. Introduzca otra.");
               longitud=s.nextLine();
           }while(!isNumeric(longitud));
       }
       String array[]=new String[Integer.parseInt(longitud)];
 
       for(int i=0; i<Integer.parseInt(longitud); i++){
           System.out.print("Introduce el valor de la posición "+(i+1)+": ");
           array[i]=s.nextLine();
       }
 
       for(int i=0; i<Integer.parseInt(longitud); i++){
           try{
               suma+=Double.parseDouble(array[i]);
           }
           catch(Exception e){
               System.out.println("El elemento "+(i+1)+" no es numérico.");
           }
       }
       System.out.println("La suma de los elementos es: "+suma);
   }
 
   private static boolean isNumeric(String cadena){
try {
Double.parseDouble(cadena);
return true;
} catch (NumberFormatException nfe){
return false;
}
}
}

Gracias a todos.

EDITO: He quitado el s.next(); de las líneas 17,22 y 29 y parece que va bien. lo puse porque a veces da problemas el retorno de carro al leer varias cadenas, voy a hacer unas pruebas a ver que pasa.

EDITO 2: perfecto. Un ejemplo de la ejecución...
run:
¿Cuántos elementos quieres? 5
Introduce el valor de la posición 1: 5
Introduce el valor de la posición 2: 6
Introduce el valor de la posición 3: p
Introduce el valor de la posición 4: 7
Introduce el valor de la posición 5: l
El elemento 3 no es numérico (p).
El elemento 5 no es numérico (l).
La suma de los elementos es: 18.0
BUILD SUCCESSFUL (total time: 23 seconds)


« Última modificación: 5 Febrero 2012, 19:41 por |Miguel| » En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Excepciones en av nod32
Hacking Básico
50l3r 0 1,333 Último mensaje 26 Marzo 2009, 22:12
por 50l3r
excepciones c++
Programación C/C++
^kazike^ 8 2,259 Último mensaje 8 Septiembre 2009, 13:54
por Eternal Idol
¿Excepciones en CSS?
Desarrollo Web
Urpem 7 2,848 Último mensaje 15 Diciembre 2009, 02:04
por Nakp
GESTIONAR EXCEPCIONES EN ORACLE
Bases de Datos
inquilin@19 1 678 Último mensaje 6 Febrero 2012, 19:23
por fran800m
Problema capturando excepciones
Programación C/C++
naderST 3 295 Último mensaje 8 Marzo 2012, 18:38
por darkvidhack
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines