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"); } } }
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"); } } }
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