Java - al finalizar el switch case no se regresa al principio del código

 
Vista:

al finalizar el switch case no se regresa al principio del código

Publicado por Hector (1 intervención) el 03/12/2020 00:33:28
Buenas estoy haciendo un código de un conversor de distancias y el código iba bien lo hago para mi clase de programación y utilizamos NetBeans pero hay un problema que al finalizar el switch case no se regresa al principio del código sino vuelve a pedir el número para procesar otra distancia y no sé que podria estar mal.

Aqui les dejo el codigo


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
import static javax.management.Query.or;
 
public class PO_5_U5 {
    //Lector del teclado
 
    public static BufferedReader Leer = new BufferedReader(new InputStreamReader(System.in));
 
    //Formato para Imprimir Valores Reales
    public static DecimalFormat Decf = new DecimalFormat("#######.00");
 
    public static void main(String args[]) throws java.io.IOException {
 
        //Estructura de datos
        float Cm = 0; //Definir variable para lectura
        byte Elecc = 0;
        String lineaTexto;
        float Mts, Km, Mi; //Definir variable para cálculo
 
        while (true) {
            //____________________________________________________________________
            System.out.println("-----------------------------------------------");
            System.out.println("            Conversor de distancias            ");
            System.out.println("               Cm=Exit para salir              ");
            System.out.println("-----------------------------------------------");
 
            //____________________________________________________________________
            //Capturar la cantidad de centimetros desde el teclado
            System.out.println("Ingrese la cantidad de centimetros a convertir:");
            lineaTexto = Leer.readLine();
            if (lineaTexto.equalsIgnoreCase("Exit")) {
                break;
            }
            try {
                Cm = Float.parseFloat(lineaTexto);
                if (Cm <= 0) {
                    System.out.println("Ingrese una cantidad correcta");
                    continue;
                }
 
            } catch (NumberFormatException e) {
                System.out.println("Ingrese un dato correcto");
                continue;
            }
            do {
                try {
                    System.out.println("\n¿A que desea convertir?");
                    System.out.println("Escribe: 1=Metros, 2=Kilometros, 3=Millas\n");
                    Elecc = Byte.parseByte(Leer.readLine());
                    if (Elecc < 1) {
                        System.out.println("\nIngrese solo un número del 1 al 3");
                        continue;
                    } else {
                        if (Elecc > 3) {
                            System.out.println("\nIngrese solo un número del 1 al 3");
                            continue;
                        }
                    }
 
                } catch (NumberFormatException e) {
                    System.out.println("\nIngrese un dato correcto");
                    continue;
                }
                switch (Elecc) {
                    case 1:
                        Mts = Cm / 100;
                        System.out.println("\n\n------------------------------------------");
 
                        System.out.println("El resultado en metros es: " + Decf.format(Mts) + " Metros");
 
                        System.out.println("------------------------------------------\n\n");
                        break;
                    case 2:
                        Km = Cm / 100000;
                        System.out.println("-----------------------------------------------------------------");
 
                        System.out.println("El resultado en kilometros es: " + Decf.format(Km) + " Kilometros");
 
                        System.out.println("-----------------------------------------------------------------");
                        break;
                    case 3:
                        Mi = Cm / 160934;
                        System.out.println("---------------------------------------------------------");
                        System.out.println("El resultado en millas es: " + Decf.format(Mi) + " Millas");
                        System.out.println("--------------------------------------------------------");
                        break;
                }
            } while (true);
 
        }
 
    }
 
}
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
Imágen de perfil de Billy Joel
Val: 2.665
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

al finalizar el switch case no se regresa al principio del código

Publicado por Billy Joel (876 intervenciones) el 03/12/2020 04:46:47
Yo lo dejo así:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.text.DecimalFormat;
//import static javax.management.Query.or;
 
public class PO_5_U5 {
 
    /**
     * Lector del teclado
     */
    public static BufferedReader leer = new BufferedReader(new InputStreamReader(System.in));
 
    /**
     * Formato para Imprimir Valores Reales
     */
    public static DecimalFormat Decf = new DecimalFormat("#######.00");
 
    public static void main(String args[]) throws java.io.IOException {
 
        //Estructura de datos
        float cm; //Definir variable para lectura
        byte elect;
        String lineaTexto;
        float Mts, Km, Mi; //Definir variable para cálculo
 
        while (true) {
            //____________________________________________________________________
            System.out.println("-----------------------------------------------"
                    + "\n Conversor de distancias "
                    + "\n Cm=Exit para salir "
                    + "\n-----------------------------------------------");
 
            //____________________________________________________________________
            //Capturar la cantidad de centimetros desde el teclado
            System.out.print("Ingrese la cantidad de centimetros a convertir: ");
            lineaTexto = leer.readLine();
            if (lineaTexto.equalsIgnoreCase("Exit")) {
                break;
            }
            try {
                cm = Float.parseFloat(lineaTexto);
                if (cm <= 0) {
                    System.out.println("Ingrese una cantidad correcta");
                    continue;
                }
 
            } catch (NumberFormatException e) {
                System.out.println("Ingrese un dato correcto");
                continue;
            }
            //do {
            try {
                System.out.print("\n¿A que desea convertir?"
                        + "\nEscribe: 1=Metros, 2=Kilometros, 3=Millas: ");
                elect = Byte.parseByte(leer.readLine());
                if (elect < 1 || elect > 3) {
                    System.out.println("\nIngrese solo un número del 1 al 3");
                    continue;
//                    } else {
//                        if (elect > 3) {
//                            System.out.println("\nIngrese solo un número del 1 al 3");
//                            continue;
//                        }
                }
            } catch (NumberFormatException e) {
                System.out.println("\nIngrese un dato correcto");
                continue;
            }
            switch (elect) {
                case 1:
                    Mts = cm / 100;
                    System.out.println("\n\n------------------------------------------"
                            + "\nEl resultado en metros es: " + Decf.format(Mts) + " Metros"
                            + "\n------------------------------------------\n\n");
                    break;
                case 2:
                    Km = cm / 100000;
                    System.out.println("-----------------------------------------------------------------"
                            + "\nEl resultado en kilometros es: " + Decf.format(Km) + " Kilometros"
                            + "\n-----------------------------------------------------------------");
                    break;
                case 3:
                    Mi = cm / 160934;
                    System.out.println("---------------------------------------------------------"
                            + "\nEl resultado en millas es: " + Decf.format(Mi) + " Millas"
                            + "\n--------------------------------------------------------");
                    break;
            }
            //} while (true);
        }
    }
}

Saludos,
Billy Joel
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