String en Switch Case en Java

La declaración de cambio es una declaración de bifurcación de múltiples vías. Proporciona una forma sencilla de enviar la ejecución a diferentes partes del código en función del valor de la expresión. Básicamente, la expresión puede ser un tipo de datos primitivo byte, short, char e int. A partir de JDK7, también funciona con tipos enumerados ( Enums en Java), la clase String y las clases Wrapper .

Por lo tanto, el concepto de string en la declaración de cambio surge en JDK 7, ya que podemos usar una string literal o constante para controlar una declaración de cambio, lo que no es posible en C/C++. El uso de un conmutador basado en strings es una mejora con respecto al uso de la secuencia equivalente de declaraciones if/else. Ahora declaramos una string como un objeto de clase String solo como se muestra a continuación:

Ilustración:

String geeks = "GeeksforGeeks" ; // Valid from JDK7 and onwards 
Object geeks = "GeeksforGeeks" ; // Invalid from JDK7 and onwards 

Hay ciertos puntos clave que deben recordarse al usar la declaración de cambio, ya que brinda comodidad pero al mismo tiempo actúa como una espada doble, por lo tanto, es mejor que analicemos los rasgos que se enumeran: 

1. Operación costosa: la activación de strings puede ser más costosa en términos de ejecución que la activación de tipos de datos primitivos. Por lo tanto, es mejor activar las strings solo en los casos en los que los datos de control ya están en forma de string.

2. La string no debe ser NULL: asegúrese de que la expresión en cualquier declaración de cambio no sea nula mientras trabaja con strings para evitar que se produzca una NullPointerException en tiempo de ejecución.

3. Comparación sensible a mayúsculas y minúsculas: la declaración de cambio compara el objeto String en su expresión con las expresiones asociadas con cada etiqueta de caso como si estuviera usando el método equals() de la clase String, en consecuencia, la comparación de objetos String en declaraciones de cambio distingue entre mayúsculas y minúsculas. .

4. Mejor que if-else: el compilador de Java genera generalmente un código de bytes más eficiente a partir de sentencias de cambio que usan objetos String que de sentencias if-then-else enstringdas.

Ejemplo 1:

Java

// Java Program to Demonstrate use of String to
// Control a Switch Statement
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Custom input string
        String str = "two";
 
        // Switch statement over above string
        switch (str) {
 
        // Case 1
        case "one":
 
            // Print statement corresponding case
            System.out.println("one");
 
            // break keyword terminates the
            // code execution here itself
            break;
 
        // Case 2
        case "two":
 
            // Print statement corresponding case
            System.out.println("two");
            break;
 
        // Case 3
        case "three":
 
            // Print statement corresponding case
            System.out.println("three");
            break;
 
        // Case 4
        // Default case
        default:
 
            // Print statement corresponding case
            System.out.println("no match");
        }
    }
}
Producción

two

Ejemplo 2:

Java

// Java Program to Demonstrate use of String to
// Control a Switch Statement
 
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Custom input string
        // Null string is passed
        String str = "";
 
        // Switch statement over above string
        switch (str) {
 
        // Case 1
        case "one":
 
            // Print statement corresponding case
            System.out.println("one");
 
            // break keyword terminates the
            // code execution here itself
            break;
 
        // Case 2
        case "two":
 
            // Print statement corresponding case
            System.out.println("two");
            break;
 
        // Case 3
        case "three":
 
            // Print statement corresponding case
            System.out.println("three");
            break;
 
        // Case 4
        // Default case
        default:
 
            // Print statement corresponding case
            System.out.println("no match");
        }
    }
}
Producción

no match

Este artículo es una contribución de Gaurav Miglani . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *