Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2010, 03:06
gjbr
 
Fecha de Ingreso: noviembre-2009
Mensajes: 23
Antigüedad: 14 años, 5 meses
Puntos: 0
¿Cómo puedo trabajar con la instrucción switch de manera repetitiva...?

Hola a todos, estoy acostumbrado a trabajar con Fortran, y ahora he emigrado algùn tiempo a Java. Se me ha presentado un problema, he desarrollado una pequeña aplicación en la que utilizo la instrucción switch para la toma de decisiones. Ver la siguiente aplicación:
------------------------------------------------------------------------------------
// Paquetes Java
import javax.swing.*;
import java.text.DecimalFormat; // Clase para dar formato a los números.
public class ejemplo08 {
public static void main(String[] args) {
String entrada; // Entrada del usuario.
String datos;
// Formato de los números en coma flotantes.
DecimalFormat digitos = new DecimalFormat("0.000"); /* Resultados se
* presentarán con
* tres decimales. */
// Declaración de variables a ser utilizadas.
int opcion;
double intensidad, voltaje, resistencia;
// Obtener la opción del usuario.
entrada = JOptionPane.showInputDialog("Este programa muestra el uso \n" +
"de la sentencia de instrucción múltiple \"switch\" \n\n" +
"1. Voltaje. \n" +
"2. Intensidad de corriente. \n" +
"3. Resistencia. \n\n" +
"Su opció es: ");
opcion = Integer.parseInt(entrada); // Convierte entrada en int.
// Toma de decisiones.
switch(opcion){
case 1: // Cálculo del voltaje.
datos = JOptionPane.showInputDialog("La intensidad en amperios es: ");
intensidad = Double.parseDouble(datos);
datos = JOptionPane.showInputDialog("La resistencia en ohmios es: ");
resistencia = Double.parseDouble(datos);
// Calculo del voltaje.
voltaje = intensidad * resistencia;
// muestra resultado del cálculo del voltaje.
JOptionPane.showMessageDialog(null, "El voltaje es: "
+digitos.format(voltaje), "Resultado",
JOptionPane.INFORMATION_MESSAGE);
break;
case 2: // Cálculo de la intensidad.
datos = JOptionPane.showInputDialog("El voltaje en voltios es: ");
voltaje = Double.parseDouble(datos);
datos = JOptionPane.showInputDialog("La resistencia en ohmios es: ");
resistencia = Double.parseDouble(datos);
// Calculo de la intensidad.
intensidad = voltaje/resistencia;
// muestra resultado del cálculo de la intensidad de corriente.
JOptionPane.showMessageDialog(null, "La intensidad es: "
+digitos.format(intensidad), "Resultado",
JOptionPane.INFORMATION_MESSAGE);
break;
case 3: // Cálculo de la resistencia.
datos = JOptionPane.showInputDialog("El voltaje en voltios es: ");
voltaje = Double.parseDouble(datos);
datos = JOptionPane.showInputDialog("La intensidad en amperios es: ");
intensidad = Double.parseDouble(datos);
// Calculo del voltaje.
resistencia = voltaje/intensidad;
// muestra resultado del cálculo de la intensidad de corriente.
JOptionPane.showMessageDialog(null, "La intensidad es: "
+digitos.format(intensidad), "Resultado",
JOptionPane.INFORMATION_MESSAGE);
break;
default: // Muestra mensaje en caso de presentarse un opción inválida.
JOptionPane.showMessageDialog(null, "Se ha escogido una opción \n" +
"inválida", "Resultado", JOptionPane.WARNING_MESSAGE);
} // Cierre de la sentencia switch.
} // Cierre del método main
} // Cierre de la clase ejemplo08
--------------------------------------------------------------------------------------------
La aplicación es ejecutada perfectamente en netbeans 6.5 a 6.8. Mi problema consiste en lo siguiente: En caso tal el usuario por una opción inválida, será ejecutada todas las instrucciones después de "default". ¿Cómo o puedo hacer para (sin recurrir a la utilización del concepto de métodos), en caso tal se ejecute esta instrucción, la aplicación vuelva a formular (presentar) las opciones permitidas nuevamente?, esto es, vuelva a presentarse nuevamente el menú.
Les agradezco de antemano la ayuda brindada.[/B]Saludos a todos