Boucles simples : while et do while

while

La boucle la plus simple est la boucle while qui répète un bloc d'instructions tant qu'une expression vaut true comme dans l'exemple suivant :

public class BoucleWhile {
    public static void main(String[] args) {
	int j = 0;
	while(j<5) {
	    System.out.println(j);
	    j = j + 1;
	}
	System.out.println(j);
    }
}

Ce programme affiche :

0 1 2 3 4 5

Il faut bien noter que la dernière valeur affichée n'est pas produite par la boucle mais par l'affichage en dehors de celle-ci.

do while

Dans certains conditions, on souhaite que la boucle s'exécute toujours au moins une fois et donc que la condition de répétition soit calculée après cette exécution. Dans ce cas, on utilise une boucle do while dont le corps (le bloc) est exécuté au moins une fois et est répété tant que l'expression finale vaut true. Par exemple :

public class BoucleWhile {
    public static void main(String[] args) {
	int j = 5;
	do {
	    System.out.println(j);
	    j = j - 2;
	} while(j >= 0);
	System.out.println(j);
    }
}

qui affiche :

5 3 1 -1

Boucle for

La boucle for est plus complexe, bien qu'elle soit en pratique presque équivalent à la boucle while. Une boucle de la forme

for(A; B; C) {
    D1;
    ...
    Dn;
}

est approximativement équivalente à

{
    A;
    while(B) {
	D1;
	...
	Dn;
	C;
    }
}

En pratique, on utilise souvent la boucle for sous la forme classique

for(int i = 0; i < k; i++) {
    D1;
    ...
    Dn;
}

qui, sauf instructions spécifiques dans le corps de la boucle, consiste simplement à exécuter les instructions D1 à Dn k fois de suite, pour toutes les valeurs entières de i de 0 à k-1 (inclus). Par exemple :

public class BoucleFor {
    public static void main(String[] args) {
       for(int i=0; i<5 ; i++) {
	   System.out.println(i);
       }   
    }
}

qui affiche :

0 1 2 3 4