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


0