La boucle for se démarque par sa compacité puisqu'elle contient entre parenthèses trois expressions permettant de l'initialiser (ex : i = 0;) de poser une condition à son terme (ex : i > 10) et de l'incrémenter ou de décrémenter automatiquement (ex : i++).

for (initialisation; condition_booléenne; incrémentation){
  // bloc d'instructions...
}

L'expression d'initialisation peut être une simple affectation mais aussi une déclaration de variable.
Dans ce dernier cas, l'argument d'itération ne sera accessible que dans l'instruction for et dans son bloc d'instructions.

int i;
for (i = 0; i < 10; i++)
  System.out.println("\ni = " + i);

for (int i = 0; i < 10; i++)
  System.out.println("i = " + i);

Le bloc d'instructions à exécuter dans une boucle for doit être contenu à l'intérieur d'accolades, s'il n'y a qu'une seule instruction, les accolades sont facultatives.

for (int i = 0; i < 10; i++)
  System.out.println(i + "\r\n");

La boucle for peut aussi bien utiliser des variables de type entier qu'à virgule flottante comme argument.

for (float i = 0; i < 10; i += 0.5)
  System.out.println(i + "\r\n");

Littéralement, cette boucle accomplit des opérations à partir d'un état initial et jusqu'à une certaine condition par le pas indiqué par l'incrémentation.

Il est possible de placer plusieurs instructions d'initialisation et d'itérations dans une boucle for en les séparant par des virgules, mais, il sera alors interdit de déclarer des variables.

class BoucleFor {
  public static void main(String[] args){
  int i, j;
  for(i = 0, j = 0; i + j < 10; i++, j += i)
      System.out.println("i = " + i + " / j = " + j + "\r\n");
  }
}

// résultat de la boucle
i = 0 / j = 0
i = 1 / j = 1
i = 2 / j = 3
i = 3 / j = 6

class AutreBoucleFor {
  public static void main(String[] args){
  int i, j;
  for(i = 0, j = 0; i < 10; ++i, j += i)
      System.out.println("i = " + i + " / j = " + j + "\r\n");
  }
}

// résultat de la boucle
i = 0 / j = 0
i = 1 / j = 1
i = 2 / j = 3
i = 3 / j = 6
i = 4 / j = 10
i = 5 / j = 15
i = 6 / j = 21
i = 7 / j = 28
i = 8 / j = 36
i = 9 / j = 45

Les boucles for peuvent s'imbriquer permettant par exemple d'explorer un tableau multidimensionnel.

import java.math.*;

class BoucleFor {
  static double[][] tailles = {{1.82, 1.65, 1.78, 2.01, 1.98},
                                    {2.11, 1.62, 1.78, 1.84},
                                    {2.01, 1.85, 2.36, 1.61, 1.67}};
  static double total = 0.0d;
  static int longueur_total;

  public static void main(String[] args){
  for(int i = 0; i < tailles.length; i++) {
      longueur_total += tailles[i].length;
      for(int j = 0; j < tailles[i].length; j++) {
        total += tailles[i][j];
        System.out.println(i + " et " + j + " : " 
                           + tailles[i][j] + "\n");
      }
  }
  System.out.println("        -----\n");
  BigDecimal moyenne = new BigDecimal(total / longueur_total);
  System.out.println("Moyenne: " + moyenne.setScale(2, 1));
  }
}}

La boucle de Djikstra est un artifice algorithmique utilisant une instruction for sans fin, contenant une structure conditionnelle d'arrêt en son sein. Cette boucle est souvent utilisée pour la validation de saisie d'un utilisateur.

class BoucleDjikstra {
    public static void main(String args[]){
        try{
            char lettre;
            for(;;){
                lettre = (char)System.in.read();
                if(lettre == 'f') break;
                System.out.println("Saisissez un caractere 'f' pour terminer !");
            }
        }
        catch(Exception e){
            System.out.println("Une exception d'entrée/sortie "
                                               + "s'est produite !");
        }
    }
}