Como criar um loop for aprimorado em Java

Para entender como usar o Java da reforçada para declaração, considere como as leis de trabalho probabilidade. Sua chance de ganhar um dos populares jackpots de loteria nos EUA é de aproximadamente 1 em 135 milhões.

Se você vender a sua casa dólar quarto de milhão e usar todo o dinheiro para comprar bilhetes de loteria, sua chance de ganhar ainda é apenas 1 em 540. Se você jogar todos os dias do mês (venda de uma casa a cada dia), sua chance de ganhar o jackpot ainda é menos de 1 em 15.

Para ilustrar a ideia do reforço para declaração, você verá quatro símbolos - uma cereja, um limão, uma kumquat, e uma rutabaga.

Quando você jogar este slot machine simplificado, você pode girar qualquer um dos mais de 60 combinações - cereja + cereja + kumquat, rutabaga rutabaga + + nabo, ou o que quer. O objetivo aqui é listar todas as combinações possíveis. Mas, primeiro, vamos dar uma olhada em outro tipo de loop. Este código define uma enum escreva para símbolos de uma máquina caça-níqueis e exibe uma lista dos símbolos.

ListSymbols importação de classe java.lang.System.out estática {Símbolo enum {cereja, limão, kumquat, rutabaga} void main (args String []) public static {for (Símbolo leftReel: Symbol.values ​​()) {out.println (leftReel) -}}}

Esse código usa Java de loop for aprimorado. A palavra Número 147-enhanced # 148- meios # 147-en-hanced comparados com os loops em versões anteriores do Java. # 148- O avançado para laço foi introduzida no Java versão 5.0. Se você executar o Java versão 1.4.2 (ou algo parecido), você não pode usar um reforço para loop.

Aqui está o formato do reforço para loop:

para (TypeName variableName : RangeOfValues) {demonstrações}

Veja como o ciclo segue o formato:

  • A palavra Símbolo é o nome de um tipo.

    o int Tipo descreve valores como -1, 0, 1 e 2. A boolean Tipo descreve os valores verdade e falso. E a Símbolo Tipo descreve os valores cereja, limão, kumquat, e couve-nabo.

  • A palavra leftReel é o nome de uma variável.

    O loop na Listagem 15-1 define contagem ser um int variável. Da mesma forma, o circuito na Listagem 15-5 define leftReel ser um Símbolo variável. Assim, em teoria, a variável leftReel pode assumir qualquer um dos quatro Símbolo valores.

  • A expressão Symbol.values ​​() significa os quatro valores no código.

    Para citar-me no ponto anterior, # 147-em teoria, a variável leftReel pode assumir qualquer um dos quatro Símbolo valores. # 148- Bem, a RangeOfValues parte do para declaração transforma a teoria em prática. Este terceiro item dentro dos parênteses diz, # 147-ter tantas iterações do loop, pois há Símbolo valores, e têm o leftReel take variável em um diferente Símbolo valor durante cada uma das iterações do laço # 148.;

    Assim, o circuito passa por quatro iterações - uma iteração em que leftReel tem valor cereja, outra iteração em que leftReel tem valor limão, uma terceira iteração em que leftReel tem valor kumquat, e uma quarta versão em que leftReel tem valor couve-nabo. Durante cada iteração, o programa imprime o leftReel o valor da variável.

    image0.jpg

Em geral, uma someEnumTypeName.valores () expressão significa o conjunto de valores que uma determinada enum variável do tipo pode ter. Por exemplo, você pode usar a expressão WhoWins.values ​​() para se referir ao casa, visitante, e nem valores.

A diferença entre o nome de um tipo (como Símbolo) E os valores do tipo (como em Symbol.values ​​()) É realmente sutil. Felizmente, você não precisa se preocupar com a diferença. Como um programador de início, você pode simplesmente usar o .valores () sufixo em um loop aprimorado da RangeOfValues parte.

menu