Cómo crear un bucle for mejorado en java
Para entender cómo utilizar Java mejorado para declaración, considere cómo las leyes de trabajo de la probabilidad. Su oportunidad de ganar uno de los populares premios de la lotería de Estados Unidos es de aproximadamente 1 en 135 millones.
Si usted vende su casa de un cuarto de millón de dólares y utilizar todo el dinero para comprar billetes de lotería, la probabilidad de ganar es todavía sólo 1 de cada 540. Si juegas todos los días del mes (la venta de una casa cada día), sus posibilidades de ganar el premio mayor es todavía menos de 1 de cada 15.
Para ilustrar la idea de la mejorada para declaración, verá cuatro símbolos - una cereza, un limón, un kumquat y un colinabo.
Cuando juegas esta máquina tragaperras simplificada, puede girar cualquiera de más de 60 combinaciones - cereza cereza + + kumquat, colinabo + + nabo nabo, o lo que sea. El objetivo aquí es hacer una lista de todas las combinaciones posibles. Pero primero, vamos a echar un vistazo a otro tipo de bucle. Este código define una enum escriba los símbolos de una máquina tragaperras y muestra una lista de los símbolos.
ListSymbols importación estática de clase java.lang.System.out {enum Símbolo {cereza, limón, kumquat, colinabo} static void main (String args []) {públicas para (Símbolo leftReel: Symbol.values ()) {out.println (leftReel) - }}}
Este código utiliza Java bucle for mejorado. La palabra " mejorada " medio " en-hanced en comparación con los bucles en las versiones anteriores de Java ". La mejorada para bucle se introdujo en la versión de Java 5.0. Si ejecuta la versión de Java 1.4.2 (o algo así), no se puede utilizar una mejorada para lazo.
Aquí está el formato de la mejorada para lazo:
para (TypeName variableName : Rango de valores) {Declaraciones}
Así es como el bucle sigue el formato:
La palabra Símbolo es el nombre de un tipo.
los int Tipo describe valores como -1, 0, 1 y 2. El boolean Tipo describe los valores cierto y falso. Y el Símbolo Tipo describe los valores Cereza, limón, naranja china, y nabo sueco.
La palabra leftReel es el nombre de una variable.
El bucle en el listado 15-1 define contar ser un int variable. Del mismo modo, el bucle en el Listado 15-5 define leftReel ser un Símbolo variable. Así que en teoría, la variable leftReel puede tomar cualquiera de los cuatro Símbolo los valores.
la expresión Symbol.values () representa los cuatro valores en el código.
Para citar a mí mismo en el punto anterior, " en teoría, la variable leftReel puede tomar cualquiera de los cuatro Símbolo valores ". Bueno el Rango de valores parte de para declaración convierte la teoría en práctica. Este tercer elemento dentro del paréntesis dice, " Tener tantas iteraciones de bucle, ya que hay Símbolo valores, y tienen la leftReel toma variable en una diferente Símbolo valor durante cada una de las iteraciones del bucle ".
Así que el bucle se somete a cuatro iteraciones - una iteración en la que leftReel tiene valor Cereza, otra iteración en la que leftReel tiene valor limón, tercera iteración en la que leftReel tiene valor naranja china, y cuarta iteración en la que leftReel tiene valor nabo sueco. Durante cada iteración, el programa imprime el leftReel el valor de la variable.
En general, una someEnumTypeName.valores () expresión significa el conjunto de valores que un particular, enum variables de tipo puede tener. Por ejemplo, puede utilizar la expresión WhoWins.values () para referirse a la casa, visitante, y ninguno los valores.
La diferencia entre el nombre de un tipo (como Símbolo) Y los valores del tipo (como en Symbol.values ()) Es muy sutil. Afortunadamente, usted no tiene que preocuparse de la diferencia. Como programador de comenzar, sólo puede utilizar el .valores () sufijo en un bucle mejorado de Rango de valores parte.