Java - ¿Cómo puedo trabajar con la instrucción switch de

   
Vista:

¿Cómo puedo trabajar con la instrucción switch de

Publicado por gjbr (1 intervención) el 21/04/2010 11:13:26
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.
Saludos a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿Cómo puedo trabajar con la instrucción switch

Publicado por Yamil Bracho (2072 intervenciones) el 21/04/2010 20:59:27
Encierra todo en un while y agrega una opcion que sea salir y cuanod usese esa opcion sales del ciclo. Por ejemplo

int opcion = -1;
while (opcion != -1) {
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.
if (opcion != 5) {
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿Cómo puedo trabajar con la instrucción switch

Publicado por Anónimo (2 intervenciones) el 28/05/2010 18:17:38
Muy sencillo, con un bucle:

boolean fin = true;
do {
entrada = JOptionPane.showInputDialog(...);
switch (entrada) {
case 1: ...
default:
...
}
} while ((entrada<1) || (entrada>3));

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar