HOWTO · Java

Java for Loop Com Duas Variáveis

Este tutorial percorre os métodos a utilizar para loop com múltiplas variáveis

Este tutorial explica como podemos utilizar múltiplas variáveis em Java for loop. Podemos conseguir isto seguindo correctamente a sintaxe do laço java for.

Java for Loop Com Múltiplas Variáveis do Mesmo Tipo

Estamos a utilizar duas variáveis dentro do laço do tipo for do tipo int. A parte antes da primeira ; é a parte de inicialização onde podemos inicializar múltiplas variáveis separadas por uma vírgula. A parte antes da segunda ; é a parte da condição, e depois é a parte da manipulação. Os operadores && e || podem ser utilizados para fazer uma condição.

public class ForLoop {
  public static void main(String[] args) {
    for (int i = 0, j = 10; i < 10 && j > 0; i++, j--) {
      System.out.println("i = " + i + " :: "
          + "j = " + j);
    }
  }
}

Resultado:

i = 0 :: j = 10
i = 1 :: j = 9
i = 2 :: j = 8
i = 3 :: j = 7
i = 4 :: j = 6
i = 5 :: j = 5
i = 6 :: j = 4
i = 7 :: j = 3
i = 8 :: j = 2
i = 9 :: j = 1

No código acima, declaramos duas variáveis - i e j com o mesmo tipo de int. i começará com 0 e continuará a aumentar até 10, e j começará com 10 e continuará a decrescer até 0.

Múltiplas condições separadas por vírgula não são correctas, pois darão um erro que pode ser compreendido por um simples exemplo, como se mostra abaixo.

public class ForLoop {
  public static void main(String[] args) {
    for (int i = 0, j = 10; i < 10, j > 0; i++, j--) {
      System.out.println("i = " + i + " :: "
          + "j = " + j);
    }
  }
}

Resultado:

error: ';' expected
        for (int i = 0, j = 10; i < 10 , j > 0; i++, j--) {
                                      ^
ForLoopSame.java:6: error: illegal start of expression
        for (int i = 0, j = 10; i < 10 , j > 0; i++, j--) {
                                       ^
ForLoopSame.java:6: error: ')' expected
        for (int i = 0, j = 10; i < 10 , j > 0; i++, j--) {
                                        ^
ForLoopSame.java:6: error: illegal start of expression
        for (int i = 0, j = 10; i < 10 , j > 0; i++, j--) {
                                           ^
ForLoopSame.java:6: error: ';' expected
        for (int i = 0, j = 10; i < 10 , j > 0; i++, j--) {
                                            ^
ForLoopSame.java:6: error: ';' expected
        for (int i = 0, j = 10; i < 10 , j > 0; i++, j--) {
                                                   ^
ForLoopSame.java:6: error: ';' expected
        for (int i = 0, j = 10; i < 10 , j > 0; i++, j--) {
                                                        ^
7 errors

Java for Loop com Variáveis Múltiplas de Tipos Diferentes

Este exemplo é ligeiramente diferente. Tem duas variáveis, y e z, do mesmo tipo, que são declaradas e inicializadas no laço. A outra variável, x, é declarada e inicializada fora do laço, posteriormente utilizada na parte de condição do laço. A reinicialização de uma variável e a alteração do seu tipo resultará num erro.

public class ForLoop {
  public static void main(String[] args) {
    int x = 2;
    for (long y = 0, z = 4; x < 10 && y < 10; x++, y++) {
      System.out.println("y: " + y);
    }

    System.out.println("x : " + x);
  }
}

Resultado:

y: 0 
y: 1 
y: 2 
y: 3 
y: 4 
y: 5 
y: 6 
y: 7 
x : 10