Code java...resultat!!

salyiohh -  
 salyiohh -
salut
selon ce lien http://www.infres.enst.fr/~charon/coursJava/debutant/somme.html

le resultat de ce code est = Voila la somme des 100 premiers entiers :5050!!!!

public class SommeWhile {
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);
}
}

pouvez vous m 'expliquer comment on a obtenu ce resultat!!
apart les explication de site.
d 'abord quand je compiles mos dos renvoie q le code est errone.

2 réponses

  1. danimo
     
    Salut,

    Je suppose que tu t'attendais à obtenir 100, pour cela il faudrait ecrire:

    somme = somme + 1;   
    //ou bien  
    somme++;   
    

    et ce serait une simple incrémentation...

    Or ce que fait ce code, c'est le cumul de i à somme ce qui fait que:

    au 1er des 100 "tours" de boucle on additionne i qui est à 1 ce qui donne somme = 1, ensuite on incrémente i de 1, il passe à 2.
    au 2ème tour, somme passe de 1 à 1 +2 = 3 et i à 3.
    au 3ème tour, somme passe de 3 à 3 +3 = 6 et i à 4.
    au 4ème tour, somme passe de 6 à 6 +4 = 10 et i à 5.
    etc...

    Le 1er entier est i, soit 1 donc somme = 0 + 1 = 1
    Le 2eme entier est i, soit 2 donc somme = 1 + 2 = 3
    Le 3eme entier est i, soit 3 donc somme = 3 + 3 = 6
    Le 4eme entier est i, soit 4 donc somme = 6 + 4 = 10
    etc.. pour arriver à 5050
    Ainsi on a bien additionné les 100 premiers entiers (1 à 100)

    Tu peux ajouter le print ci-dessous pour bien voir la progression de somme:
    while (i <= 100) { 
                System.out.println("l'entier i = " + i + " somme = " + somme + " + " + i + " = " + (somme +i));
                somme = somme + i; 
                i = i + 1;
             }

    Cordialement,

    Dan

    Ps,

    À mon avis il y a une petite erreur car on ne tient compte ni du 0 (zero) ni des valeurs négatives et on aurait dû dire:
    "faire la somme des 100 premiers entiers positifs et supérieurs à zero"
    Mais je n'ai pas consulté le lien...
    0
  2. salyiohh
     
    merci bien Dan pour tes explications..
    0