Il s'agit d'abord d'écrire un programmme qui calcule la somme des 100 premiers entiers.
public class SommeWhile {Le programme déclare deux variables de type int, la variable i et la variable somme.
public static void main(String[] arg) {
int i;
int somme;
somme = 0;
i = 1;
while (i <= 100) {
somme = somme + i;
i = i + 1;
}
System.out.println("Voila la somme des 100 premiers entiers : " + somme);
}
}
On obtient à l'exécution, avec notre
programme :
Voila la somme des 100 premiers entiers : 5050
Les parenthèses autour "des trois champs" instruction1; condition; instruction2
sont obligatoires. Les trois champs, séparés par
deux points-virgules, sont obligatoires aussi. S'il y a une seule
instruction dans la suite des instructions, les accolades sont
facultatives.
Losque le flux d'exécution du programme arrive sur la boucle for, il exécute instruction1, puis il
teste condition ; si condition
vaut vrai (true), il "passe dans
la boucle", c'est-à-dire qu'il exécute la suite
des instructions qui s'y trouvent. Après cela, il remonte
à la boucle for, il effectue instruction2,
puis il teste à nouveau condition et
ainsi de suite jusqu'à ce que condition
vale faux (false), alors le
flux d'exécution continue avec ce qui suit la boucle.
public class SommeFor {
public static void main(String[] arg) {
int i, somme = 0;
int plusGrand;
plusGrand = Integer.parseInt(arg[0]);
for
(i = 1; i <= plusGrand; i = i + 1) somme = somme + i;
System.out.println("Voila la somme des " + plusGrand + " premiers
entiers : " + somme);
}
}
On a fait une variante sur la déclaration des variables, qui
consiste à en grouper qui sont d'un même type, et
à initialiser à la déclaration
certaines des variables.
La variable plusGrand doit servir à connaître le plus grand des entiers qu'on veut sommer.
À l'exécution, on enverra un argument au programme, par exemple 12 si on veut calculer la somme des 12 premiers entiers.
L'instruction :
plusGrand =
Integer.parseInt(arg[0]);
sert à traduire arg[0]
en un int..
Quand le programme arrive sur la boucle for, elle commence par exécuter l'instruction qui se trouve dans le premier champ de la parenthèse qui suit le mot for, c'est-à-dire l'instruction : i = 1; . Puis, elle effectue le test correspondant au deuxième champ, en comparant la valeur de i à plusGrand ; ce test étant positif, le programme "passe dans la boucle" qui, ici, ne contient qu'une seule instruction somme = somme + i;. Après cela, le programme remonte à la boucle for pour exécuter l'instruction i = i + 1 contenue dans le troisième champ, puis il refait le test du deuxième champ, qui est positif, de nouveau la passage dans la boucle, puis l'instruction du troisième champ, puis le test du deuxième champ, et ainsi de suite jusqu'à ce que le test du deuxième champ soit négatif.
Une autre forme de la boucle for sera étudiée plus tard.
Pour la commande :
java EssaiFor 12 (ou bien en faisant "Run" sur Eclipse après
avoir indiqué un argument de 12),
on obtient à l'exécution, avec notre programme :
Voila la somme des 12 premiers entiers : 78
Il existe un troisième type de boucle, "la boucle do-while" que nous n'illustrons pas pour l'instant.
Nous vous conseillons de faire cet exercice sur le calcul d'une factorielle
© Charon Irène Télécom ParisTech 2012