Sentencia de decisión switch

Solo disponible en BuenasTareas
  • Páginas : 2 (473 palabras )
  • Descarga(s) : 0
  • Publicado : 26 de abril de 2011
Leer documento completo
Vista previa del texto
Sentencia de decisión switch
Semana 3
Generalidades.

* Permite ejecutar una de varias acciones, en función del valor de una expresión. Es una sentencia especial para decisionesmúltiples. La sintaxis para utilizar esta sentencia es:

switch (expresión)
{
case expresión_constante_1 :
[sentencia1;]
break;

case expresión_constante_2 :
[sentencia2;]
break;

caseexpresión_constante_3 :
[sentencia3;]
break;
.
.
.
[default]
[sentencia n;]
break;
}

* Donde expresión es una expresión entera de tipo char, byte, short o int y expresión_constantees una constante también de los mismos tipos.
* La sentencia switch evalúa la expresión entre paréntesis y compara su valor con las constantes de cada case.
* Si no existe una constanteigual al valor de la expresión, entonces se ejecutan las sentencias que están a continuación de default, si esta cláusula ha sido especificada.
* La sentencia switch puede incluir cualquier número deetiquetas case
Ejemplo:
Realizaremos un programa que lea una fecha representada por dos enteros, mes y año y dé como resultado los días correspondientes al mes. Por ejemplo el programa pediría alusuario los valores del mes y del año:

Introducir mes (##) y año (####) : 12 2008

Y mostraría a continuación:

El mes 12 del año 2008 tiene 31 días.

Hay que tener en cuenta que febreropuede tener 28 días o bien 29 si el año es bisiesto. Un año es bisiesto cuando es múltiplo de 4 y no de 100 o cuando es múltiplo de 400; el año 2100 no es bisiesto porque aunque sea múltiplo de 4,también lo es de 100 y no es múltiplo de 400.

La solución del problema podría enfocarse de la siguiente forma:
* Primero definimos las variables que vamos a utilizar en los cálculos:
int dias=0,mes=0, año=0;

* Luego leemos los datos del mes y del año:

System.out.print(“Mes (##) : “) ; mes=Leer.datoInt();
System.out.print(“ Año (####) : “) ; año=Leer.datoInt();

*...
tracking img