Declaración de cambio en Java

La declaración de cambio es una declaración de bifurcación de múltiples vías. En palabras simples, la declaración de cambio de Java ejecuta una declaración de múltiples condiciones. Es como una declaración de escalera if-else-if . 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. Básicamente prueba la igualdad de variables frente a múltiples valores.

Nota: la expresión de cambio de Java debe ser de byte, short, int, long (con su tipo Wrapper), enumeraciones y strings. A partir de JDK7, también funciona con tipos enumerados ( Enums en Java), la clase String y las clases Wrapper .

Algunas reglas importantes para declaraciones de cambio

  1. Puede haber cualquier cantidad de casos que solo impongan una verificación de condición, pero recuerde que no se permiten valores duplicados de casos.
  2. El valor de un caso debe ser del mismo tipo de datos que la variable en el interruptor.
  3. El valor de un caso debe ser constante o literal. No se permiten variables.
  4. La sentencia break se utiliza dentro del interruptor para terminar una secuencia de sentencias.
  5. La instrucción break es opcional. Si se omite, la ejecución continuará en el siguiente caso.
  6. La declaración predeterminada es opcional y puede aparecer en cualquier lugar dentro del bloque del interruptor. En caso de que no esté al final, se debe mantener una declaración de interrupción después de la declaración predeterminada para omitir la ejecución de la siguiente declaración de caso.

Diagrama de flujo de la declaración Switch-Case 

switch-statement-flowchart-in-java

Sintaxis: Switch-case 

// switch statement 
switch(expression)
{
   // case statements
   // values must be of same type of expression
   case value1 :
      // Statements
      break; // break is optional
   
   case value2 :
      // Statements
      break; // break is optional
   
   // We can have any number of case statements
   // below is default statement, used when none of the cases is true. 
   // No break is needed in the default case.
   default : 
      // Statements
}

Nota: la declaración de cambio de Java es una declaración de falla, lo que significa que ejecuta todas las declaraciones si no se usa la   palabra clave break , por lo que es muy esencial usar la palabra clave break dentro de cada caso.

Ejemplo: Considere el siguiente programa java, declara un día con nombre int cuyo valor representa un día (1-7). El código muestra el nombre del día, según el valor del día, mediante la instrucción switch.

Java

// Java program to Demonstrate Switch Case
// with Primitive(int) Data Type
  
// Class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        int day = 5;
        String dayString;
  
        // Switch statement with int data type
        switch (day) {
  
        // Case
        case 1:
            dayString = "Monday";
            break;
  
        // Case
        case 2:
            dayString = "Tuesday";
            break;
  
            // Case
        case 3:
            dayString = "Wednesday";
            break;
  
            // Case
        case 4:
            dayString = "Thursday";
            break;
  
        // Case
        case 5:
            dayString = "Friday";
            break;
  
            // Case
        case 6:
            dayString = "Saturday";
            break;
  
            // Case
        case 7:
            dayString = "Sunday";
            break;
  
        // Default case
        default:
            dayString = "Invalid day";
        }
        System.out.println(dayString);
    }
}
Producción

Friday

Omitir la declaración de ruptura

Una declaración de ruptura es opcional. Si omitimos el descanso, la ejecución continuará en el siguiente caso. A veces es deseable tener varios casos sin declaraciones de interrupción entre ellos. Por ejemplo, consideremos la versión actualizada del programa anterior, también muestra si un día es un día de semana o un día de fin de semana.

Ejemplo:

Java

// Java Program to Demonstrate Switch Case
// with Multiple Cases Without Break Statements
  
// Class
public class GFG {
  
    // main driver method
    public static void main(String[] args)
    {
        int day = 2;
        String dayType;
        String dayString;
  
        // Switch case
        switch (day) {
  
        // Case
        case 1:
            dayString = "Monday";
            break;
  
        // Case
        case 2:
            dayString = "Tuesday";
            break;
  
            // Case
        case 3:
            dayString = "Wednesday";
            break;
        case 4:
            dayString = "Thursday";
            break;
        case 5:
            dayString = "Friday";
            break;
        case 6:
            dayString = "Saturday";
            break;
        case 7:
            dayString = "Sunday";
            break;
        default:
            dayString = "Invalid day";
        }
  
        switch (day) {
            // Multiple cases without break statements
  
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:
            dayType = "Weekday";
            break;
        case 6:
        case 7:
            dayType = "Weekend";
            break;
  
        default:
            dayType = "Invalid daytype";
        }
  
        System.out.println(dayString + " is a " + dayType);
    }
}
Producción

Tuesday is a Weekday

Instrucciones anidadas de Switch Case

Podemos usar un interruptor como parte de la secuencia de instrucciones de un interruptor externo. Esto se llama un interruptor anidado. Dado que una declaración de cambio define su propio bloque, no surgen conflictos entre las constantes de caso en el interruptor interno y las del interruptor externo.

Ejemplo:

Java

// Java Program to Demonstrate
// Nested Switch Case Statement
  
// Class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Custom input string
        String Branch = "CSE";
        int year = 2;
  
        // Switch case
        switch (year) {
  
        // Case
        case 1:
            System.out.println(
                "elective courses : Advance english, Algebra");
  
            // Break statement to hault execution here
            // itself if case is matched
            break;
  
            // Case
        case 2:
  
            // Switch inside a switch
            // Nested Switch
            switch (Branch) {
  
            // Nested case
            case "CSE":
            case "CCE":
                System.out.println(
                    "elective courses : Machine Learning, Big Data");
                break;
  
            // Case
            case "ECE":
                System.out.println(
                    "elective courses : Antenna Engineering");
                break;
  
                // default case
                // It will execute if above cases does not
                // execute
            default:
  
                // Print statement
                System.out.println(
                    "Elective courses : Optimization");
            }
        }
    }
}
Producción

elective courses : Machine Learning, Big Data

Ejemplo:

Java

// Java Program to Illustrate Use of Enum
// in Switch Statement
  
// Class
public class GFG {
  
    // Enum
    public enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat }
  
    // Main driver method
    public static void main(String args[])
    {
  
        // Enum
        Day[] DayNow = Day.values();
  
        // Iterating using for each loop
        for (Day Now : DayNow) {
  
            // Switch case
            switch (Now) {
  
            // Case 1
            case Sun:
                System.out.println("Sunday");
  
                // break statement that hault further
                // execution once case is satisfied
                break;
  
            // Case 2
            case Mon:
                System.out.println("Monday");
                break;
  
            // Case 3
            case Tue:
                System.out.println("Tuesday");
                break;
  
            // Case 4
            case Wed:
                System.out.println("Wednesday");
                break;
  
            // Case 5
            case Thu:
                System.out.println("Thursday");
                break;
  
            // Case 6
            case Fri:
                System.out.println("Friday");
                break;
  
            // Case 7
            case Sat:
                System.out.println("Saturday");
                break;
            }
        }
    }
}
Producción

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

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 *