Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Switch es mas agradable de leer el codigo

Hola. Segun entiendo el suitch case es mejor a la vista y es mas facil de entender que si usaramos una cadena de if-else, la pregunata es: este codigo si bien hace lo mismo que la cadena else-if, queria mas entendible?, me tomé el atrevimiento de convertirlo.

package EJEMPLO_DE;

public class TestDescuento {

public static void main(String[] args) {

    double valorCompra = 300.1;
    double valorDescuento = 0;

    switch (true) {
        case valorCompra < 100.0:
            System.out.println("La compra no tiene descuento, el valor a pagar es " + valorCompra);
            break;
        case valorCompra >= 100.0 && valorCompra < 200.0:
            valorDescuento = valorCompra - (valorCompra * 0.1);
            System.out.println("El valor a pagar es " + valorDescuento);
            break;
        case valorCompra >= 200.0 && valorCompra <= 300.0:
            valorDescuento = valorCompra - (valorCompra * 0.15);
            System.out.println("El valor a pagar es " + valorDescuento);
            break;
        case valorCompra > 300.0:
            valorDescuento = valorCompra - (valorCompra * 0.2);
            System.out.println("El valor a pagar es " + valorDescuento);
            break;
    }
}

}

2 respuestas

¡Hola Santiagoandrésrodríguezroma!

¡Gracias por compartir tu código! En cuanto a tu pregunta, es cierto que el switch case puede ser más fácil de leer y entender que una cadena de if-else, especialmente cuando se tienen muchas condiciones. En cuanto a tu código, parece estar bien estructurado y hace lo mismo que la cadena else-if que mencionaste.

Sin embargo, hay una pequeña observación que podría hacerse. En lugar de usar "switch (true)", podrías usar "switch (valorCompra)" y luego comparar los casos con los valores correspondientes. Esto hace que el código sea más legible y fácil de entender.

Aquí te muestro cómo se vería el código con esta modificación:

package EJEMPLO_DE;

public class TestDescuento {

    public static void main(String[] args) {

        double valorCompra = 300.1;
        double valorDescuento = 0;

        switch (valorCompra) {
            case valorCompra < 100.0:
                System.out.println("La compra no tiene descuento, el valor a pagar es " + valorCompra);
                break;
            case valorCompra >= 100.0 && valorCompra < 200.0:
                valorDescuento = valorCompra - (valorCompra * 0.1);
                System.out.println("El valor a pagar es " + valorDescuento);
                break;
            case valorCompra >= 200.0 && valorCompra <= 300.0:
                valorDescuento = valorCompra - (valorCompra * 0.15);
                System.out.println("El valor a pagar es " + valorDescuento);
                break;
            case valorCompra > 300.0:
                valorDescuento = valorCompra - (valorCompra * 0.2);
                System.out.println("El valor a pagar es " + valorDescuento);
                break;
        }
    }
}

Espero que esto te haya ayudado. ¡Buenos estudios!

Vaya ! que buenisima re-estructuracion. Gracias por el aporte. Apenas estoy entiendo eso