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
- 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.
- El valor de un caso debe ser del mismo tipo de datos que la variable en el interruptor.
- El valor de un caso debe ser constante o literal. No se permiten variables.
- La sentencia break se utiliza dentro del interruptor para terminar una secuencia de sentencias.
- La instrucción break es opcional. Si se omite, la ejecución continuará en el siguiente caso.
- 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
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ónFridayOmitir 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ónTuesday is a WeekdayInstrucciones 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ónelective courses : Machine Learning, Big DataEjemplo:
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ónSunday Monday Tuesday Wednesday Thursday Friday SaturdayEste 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