Exercice 5/6

Soit la variable var1 qui contient une chaîne de caractères.

Dans le fichier "script.js" :

  • écrivez une structure while;
  • tant que i est strictement inférieure à la longueur de la chaîne:
    • récupérez le caractère de la chaîne dont la position est à i (voir astuce) et concaténez-le à result;
  • cliquez sur "Soumettre ma réponse".

Leçon 5/6

Exercice de rappel dans lequel il faut écrire un script qui reconstitue une chaîne de caractères.

Par exemple, pour récupérer le deuxième caractère d'une chaîne il faut utiliser maChaine.charAt(1) car le premier caractère est à la position 0.

Commentaires les mieux notés

  • mram Administrateur

    Pour "while" ça doit passer maintenant (si vous n'avez oublié aucun espace lignes 4 et 6). Pour l'astuce, c'est juste pour rappeler qu'on compte à partir de 0 et non 1. Mais vous l'avez compris donc ça ne vous sera pas utile :)

  • pascal-ds

    Devinez le message ? gagnéééééé ! c'est : avez vous bien écrit la structure while ? bis repetita placent. J'ai testé en déclarant une chaîne quelconque, le script s'éxécute correctement et me reconstitue la chaîne. Je ne vois pas le pourquoi de l'astuce, à partir du moment où i = 0 on démarre bien au premier caractère de la chaîne et donc, il n'y a pas de piège... :o) Pour être sûr, j'ai déclaré result vide au départ, mais pas certain que cela soit utile...

  • david.messagerie

    besoin d'aide svp

  • y.redjah

    je me demande si il n'y a pas un beug parce que pour moi aussi ça commence à faire un gros nombre d'exercice qui ne se valident pas voici mon code var i = 0; var result = ""; while (i < var1.length); { result+=var1.charAt(i); i++; } alert(result);

75 Commentaires

  • mram

    mram Administrateur

    Pour "while" ça doit passer maintenant (si vous n'avez oublié aucun espace lignes 4 et 6). Pour l'astuce, c'est juste pour rappeler qu'on compte à partir de 0 et non 1. Mais vous l'avez compris donc ça ne vous sera pas utile :)

    le 29/08/2016 à 16h49

  • pascal-ds

    pascal-ds

    Devinez le message ? gagnéééééé ! c'est : avez vous bien écrit la structure while ? bis repetita placent. J'ai testé en déclarant une chaîne quelconque, le script s'éxécute correctement et me reconstitue la chaîne. Je ne vois pas le pourquoi de l'astuce, à partir du moment où i = 0 on démarre bien au premier caractère de la chaîne et donc, il n'y a pas de piège... :o) Pour être sûr, j'ai déclaré result vide au départ, mais pas certain que cela soit utile...

    le 29/08/2016 à 11h46

  • david.messagerie

    david.messagerie

    besoin d'aide svp

    le 03/03/2017 à 23h16

  • y.redjah

    y.redjah

    je me demande si il n'y a pas un beug parce que pour moi aussi ça commence à faire un gros nombre d'exercice qui ne se valident pas voici mon code var i = 0; var result = ""; while (i < var1.length); { result+=var1.charAt(i); i++; } alert(result);

    le 25/04/2017 à 22h03

  • mram

    mram Administrateur

    @bretel.val : mettez un espace après "while" et ligne 2 il faut affecter une chaîne de caractères vide "". Sinon la concaténation plus loin ne peut fonctionner.

    le 26/04/2017 à 14h50

  • Timo

    Timo

    Bonjour, j'ai réussi cet exercice en m'aidant des autres car je ne trouvais pas mon erreur. Mon erreur était de ne pas avoir déclaré de guillemets dans result (result = ""). Est-on obligé de signaler que ce sera une chaine de caractère en mettant ces guillemets ?

    le 15/09/2016 à 21h49

  • mram

    mram Administrateur

    @y.redjah : votre code est à priori correct, mais ligne 5 essayez avec la syntaxe de base >> result = result + var1.charAt(i);

    le 26/04/2017 à 14h52

  • mathieu.finocchiaro

    mathieu.finocchiaro

    var i = 0; var result; while (i > var1.length) { result += var1.charAt(i); i++; } alert(result); msg: result ne contient pas le code attendu. j'ai essayé avec var result = ""; mm resultat.....

    le 15/12/2016 à 13h42

  • mram

    mram Administrateur

    Ligne 2, il faut préciser que "result" contiennent une chaîne de texte vide, car pour l'instant la variable est "undefined" donc la concaténation que vous devez faire ligne 5 mais que vous ne faites pas) ne fonctionnera pas.

    le 05/03/2017 à 11h22

  • mram

    mram Administrateur

    Bonjour, mettez juste un espace après "while".

    le 21/05/2017 à 22h14

  • mram

    mram Administrateur

    Oui car dans la boucle on ajoute du texte dans "result" à chaque itération, donc il faut au moins qu'au début result contienne une chaîne de texte vide afin de permettre la concaténation qui est faite ligne 5.

    le 16/09/2016 à 14h59

  • Timo

    Timo

    D'accord, merci pour l'explication

    le 16/09/2016 à 20h36

  • y.redjah

    y.redjah

    @ mram : j'ai bien fait ça var i = 0; var result = ""; while (i < var1.length); { result = result + var1.charAt(i); i++; } alert(result); mais toujours le message d'erreur.

    le 26/04/2017 à 17h03

  • y.redjah

    y.redjah

    c'est bon j'ai trouvé l'erreur c'était le ; à la fin de la ligne 3

    le 26/04/2017 à 17h06

  • fumey.claire

    fumey.claire

    Bonjour, je ne trouve pas la solution... merci pour votre aide

    le 17/12/2016 à 19h03

  • mram

    mram Administrateur

    @mathieu.finocchiaro : attention ligne 5 vous ajoutez à chaque fois du contenu dans "result" via une concaténation, mais pour que ça marche, il faut faire en sorte que "result" soit une chaîne vide au départ (ligne 2).

    le 18/12/2016 à 18h23

  • mram

    mram Administrateur

    @fumey.claire : c'est à cause de la ligne 7 qui est en trop, on s'attend à ce que "i++" soit le dernier code dans la structure "while".

    le 18/12/2016 à 18h26

  • Chris

    Chris

    Bonjour, je ne comprend pas mon erreur, pourriez-vous m'aider svp ? var i=0; var result=""; while (i < var1.length) { result += var1.charAt(i); i++; } alert(result);

    le 29/11/2016 à 12h20

  • Chris

    Chris

    c'est bon en fait j'ai compris, mon indentation était incorrecte ! Comme quoi refaire tout le code en repartant de 0 ça marche bien ! :D

    le 29/11/2016 à 12h25

  • mram

    mram Administrateur

    Et oui, il faut indenter le code pour apprendre à écrire du code lisible, bien que sans ça, votre code était correct.

    le 30/11/2016 à 16h38

  • Trov

    Trov

    bonjour, je n'arrive pas à mettre la main sur mon erreur...var i = 0; var result = ""; while (i < var1.lenght) { result += var1.charAt(i); i++; } alert(result);

    le 10/10/2016 à 20h14

  • Pakal texas ranger

    Pakal texas ranger

    Bonjour cela fait 2 3 exo ou a chaque fois il me dit Avez vous bien écrit la structure de la boucle WHILE . soit c'est moi qui n'est pas compris comment elle fonctionne soit il y a un os dans le pathé ! Merci bonne journée voici mon code : var i = 0 var result = "" while ( i < var1.length ) { result += var1.charAt(i);i++; } alert(result);

    le 09/03/2017 à 13h01

  • bretel.val

    bretel.val

    ça ne marche toujours pas

    le 30/04/2017 à 13h57

  • patricerameaux

    patricerameaux

    vous ne pouvez pas affecter directement var1 à result : ah bon ??

    le 12/10/2016 à 10h54

  • patricerameaux

    patricerameaux

    merci de répondre à mes questions, ce qui n'est pas le cas depuis plusieurs exercices

    le 12/10/2016 à 11h51

  • mram

    mram Administrateur

    Bonjour, à la ligne 3 il y a une faute de frappe à la fin.

    le 04/05/2017 à 12h14

  • mram

    mram Administrateur

    Lignes 5, idem, les deux instructions doivent être sur une ligne chacune. Sinon oui vous avez bien compris le fonctionnement de la boucle.

    le 14/03/2017 à 00h21

  • syarova_tsonka

    syarova_tsonka

    Est-ce que vous pouvez m'aider?

    le 10/07/2016 à 22h01

  • mram

    mram Administrateur

    Oui, si vous me dites ce qui vous pose problème...

    le 11/07/2016 à 12h24

  • syarova_tsonka

    syarova_tsonka

    Excusez-moi :) Je pensais que vous aviez de la visibilité sur ce que j'étais en train de faire ou plutôt de ne pas réussir à faire. var i = 0; var result; while (i<'var1') { result+=var1.charAt(i); i++; } alert(result); Si vous pouvez m'indiquez le bon code? Merci

    le 12/07/2016 à 13h41

  • mram

    mram Administrateur

    C'est le code ligne 3 qui est incorrect "var1" avec des guillemets c'est juste du texte, et ça ne fait par référence au contenu de la variable var1. Ensuite il faut récupérer la longueur du texte contenu dans var1.

    le 12/07/2016 à 14h08

  • mram

    mram Administrateur

    @Trov : ligne 3 il y a une faute de frappe.

    le 16/10/2016 à 23h13

  • mram

    mram Administrateur

    @patricerameaux : ligne 5 il faut faire une concaténation.

    le 16/10/2016 à 23h14

  • laurent.sama

    laurent.sama

    Bonjour, quelle est mon erreur? Avez-vous bien écrit la structure de la boucle "while" ? var i = 0; var result = ""; while(i < var1.length) { result += var1.charAt(i); i++; } alert(result);

    le 12/09/2016 à 06h39

  • khd69-20

    khd69-20

    bonjour, je ne voit pas ou se trouve mon erreur. (Avez-vous bien écrit la structure de la boucle "while" ?,Avez-vous bien affiché "result" avec alert() ?)

    le 29/06/2018 à 03h12

  • mram

    mram Administrateur

    Bonjour, alert() doit être en dehors de la boucleà priori.

    le 05/07/2018 à 04h40

  • danderhy3

    danderhy3

    bonjour j ai toujours un message while pouvez m'aider svp

    le 16/05/2017 à 11h21

  • jenebakone

    jenebakone

    bonjour,pouvez vous m'indiquer mon erreur?Merci

    le 27/10/2016 à 12h08

  • mram

    mram Administrateur

    Et oui, le code lignes 4 à 7 a une indentation en trop.

    le 13/09/2016 à 18h56

  • pascal-ds

    pascal-ds

    ça ne passe toujours pas... j'ai vérifié pour les espaces. Volontairement je laisse un espace de part et d'autre des comparateurs =, < etc., et n'en mets pas après ou avant les ( ) ou avant les ; . S'il y a une coquille, je ne l'ai pas trouvée.

    le 30/08/2016 à 08h52

  • mram

    mram Administrateur

    Je pense juste une indentation en trop ligne 6, mais sinon le code est correct.

    le 29/10/2016 à 17h18

  • mram

    mram Administrateur

    Il manque 1 espace ligne 4 et 2 espaces ligne 6.

    le 30/08/2016 à 13h49

  • bretel.val

    bretel.val

    Bonjour, le message me demande si j'ai bien écrit la structure de while et que result ne contient pas le texte attendu pourtant je crois avoir suivi les consignes.

    le 23/04/2017 à 14h17

  • tomasinilaura1988

    tomasinilaura1988

    var i = 0; var result; while (i < var1.length) { result += var1.charAt(i); i++; } alert(result);

    le 12/11/2017 à 22h09

  • mram

    mram Administrateur

    Bonjour, vous avez des espaces inutiles après les accolades {

    le 16/11/2017 à 17h03

  • elisabeth.elisabeth-29

    elisabeth.elisabeth-29

    Bonjour, je ne comprends pas mon erreur. pouvez-vous jeter un oeil SVP ? je passe au suivant..

    le 04/04/2018 à 13h48

  • mram

    mram Administrateur

    Bonjour, alert() se met après la boucle.

    le 05/04/2018 à 04h02

  • yselim1-13

    yselim1-13

    Voilà le message qui s'affiche lorsque je tente de valider mon exercice : Avez-vous bien écrit la structure de la boucle "while" ?,Avez-vous bien affiché "result" avec alert() ?

    le 08/06/2018 à 17h22

  • mram

    mram Administrateur

    Il faut mettre alert() après la boucle.

    le 13/06/2018 à 04h20

  • nsanvarela-98

    nsanvarela-98

    Bonjour : var i=0; var result; while (i < var1.length) { result += var1.charAt(i); i++; } alert(result); Je ne comprend pas l'erreur => ""result" ne contient pas le texte attendu. Revoyez votre code."

    le 08/06/2018 à 19h40

  • mram

    mram Administrateur

    Bonjour , ligne 2 vous oubliez de préciser que "result" doit contenir une chaîne de caractères.

    le 13/06/2018 à 04h23

  • ts.fabius-98

    ts.fabius-98

    bONJOUR, svp ca fait le troisième exercoce que j'essaye de valider sans succès..pourtant mes codes semblent correct...merci de m'indiquer le problème svp

    le 13/09/2018 à 14h12

  • mram

    mram Administrateur

    Bonjour, ligne 5 l'indentation n'est pas complète, il manque un espace.

    le 15/09/2018 à 07h58

  • hedi_dc

    hedi_dc

    var i=0; var result=""; while (i<var1.length) { result+=var1.charAt(i); i++; } alert(result); Bonjour, je ne vois pas où est mon erreur, la structure While me semble juste?

    le 13/09/2017 à 21h13

  • mram

    mram Administrateur

    Bonjour, ajoutez une tabulation devant i++;

    le 14/09/2017 à 13h55

  • gerald.lukuba-62

    gerald.lukuba-62

    Bonjour, je ne trouve pas mon erreur. Pourriez vous regarder svp?

    le 13/03/2018 à 12h09

  • mram

    mram Administrateur

    Bonjour, votre code semble correct. Quel message d'erreur avez-vous ?

    le 16/03/2018 à 04h53

  • aymoh-14

    aymoh-14

    bonjour est ce que quelqu'un peut m'aider a valider ce chapitre je bloque sur celui ci please

    le 13/12/2018 à 13h43

  • meriam

    meriam Administrateur

    la variable result est déja déclaré à la ligne 4 au début de l'exercice, pas besoin de la déclarer une deuxième (ligne6).

    le 13/12/2018 à 14h09

  • lisa.dutour-63

    lisa.dutour-63

    Bonjour, je dois avoir un problème de syntaxe mais ne le trouve pas. Pouvez-vous m'aider ?

    le 05/09/2018 à 17h31

  • mram

    mram Administrateur

    Bonjour, quel est le message d'erreur svp ? Ca aidera à identifier le souci.

    le 05/09/2018 à 19h09

  • gasnier.br

    gasnier.br

    Merci pour ces précisions. Ca marche !

    le 12/01/2018 à 13h17

  • yselim1-13

    yselim1-13

    J'ai des guillemets vides pourtant à result mais impossible de valider ni cet exercice ni le précédent

    le 25/06/2018 à 00h49

  • hedi_dc

    hedi_dc

    rebonjour, avec ou sans tabulation à i++; c'est pareil, rien ne fonctionne. je passe au suivant. merci quand même

    le 16/09/2017 à 14h29

  • hedi_dc

    hedi_dc

    il fallait un espace entre result += var1.charAt(i);

    le 16/09/2017 à 14h33

  • thomas.dupuy

    thomas.dupuy

    Bonjour j'ai essayer de différente façon : "result += var1.charAt(i);" <=> "result = result + var1.charAt(i);" <=> result = result.concat(var1.charAt(i));" mais rien n'y fais j'ai toujours le message : ""result" ne contient pas le texte attendu. Revoyez votre code."

    le 30/11/2017 à 12h47

  • mram

    mram Administrateur

    Bonjour, la concaténation avec += est celle qu'il faut utiliser ici (les autres sont fonctionnelles également), par contre il ne faut pas oublier le " ; " à la fin de la ligne.

    le 01/12/2017 à 00h54

  • doucette.manon

    doucette.manon

    "result" ne contient pas le texte attendu. Revoyez votre code. J'ai l'impression que tous les exercices bugs ..........

    le 06/09/2018 à 11h03

  • mram

    mram Administrateur

    Non, il vous manquait la déclaration de la variable "i".

    le 10/09/2018 à 04h11

  • gasnier.br

    gasnier.br

    bonjour, un petit coup de main serait le bienvenue. le message d'erreur est : " "result" ne contient pas le texte attendu. Revoyez votre code." je coince. merci

    le 07/01/2018 à 19h44

  • mram

    mram Administrateur

    Bonjour, à la ligne 5 vous faites une concaténation. Mais pour que ça fonctionne il faut que "result" soit une chaîne de caractère. Or ligne 2 vous ne le précisez pas, il faudrait mettre une chaîne vide (juste les guillemets).

    le 12/01/2018 à 01h23

  • lolululo-22

    lolululo-22

    bonjour, je ne comprends pas mon erreur. var i = 0; var result; while (i<var1.length) { result += var1.charAt(i); i++; } alert(result);. Quand je clique sur soumettre, il m'affiche "Avez-vous bien écrit la structure de la boucle "while" ?,"result" ne contient pas le texte attendu. Revoyez votre code.".

    le 05/06/2018 à 16h35

  • mram

    mram Administrateur

    Bonjour, attention aux espaces inutiles en fin de ligne. Le code lui-même est correct.

    le 07/06/2018 à 04h59

  • DuckPixl

    DuckPixl

    result ne contient pas le texte attendu ...

    le 28/06/2018 à 17h12

  • mram

    mram Administrateur

    Bonjour, la ligne 1 est inutile, la variable var1 existe déjà et contient du texte.

    le 05/07/2018 à 04h11

  • DuckPixl

    DuckPixl

    je ne comprends toujours pas mon erreur

    le 28/06/2018 à 17h13

  • mram

    mram Administrateur

    La variable var1 existe déjà et contient du texte, la ligne 1 est inutile.

    le 05/07/2018 à 04h32

  • max.genestier-29

    max.genestier-29

    var i=0; var result; while (i < var1.length) { result += var1.charAt(i); i++; } alert(result);

    le 13/04/2018 à 11h32

  • mram

    mram Administrateur

    Bonjour, votre code semble correct. Quel message d'erreur avez-vous ?

    le 15/04/2018 à 02h20

  • nathalie.chenparis

    nathalie.chenparis

    Bonjour quelqu'un peux m'aider, j'ai validé l'exercice sans le comprendre. Pourquoi on incrémente i (i++) ?

    le 13/05/2018 à 19h27

  • mram

    mram Administrateur

    Bonjour, la condition dans la boucle c'est "tant que i est inférieur à ...", si à chaque exécution de la boucle on n'incrémente pas i alors la boucle est exécutée à l'infinie. Or si on incrémente i alors à un moment donné la condition ne sera plus vérifiée car i sera devenu supérieur à la valeur indiquée : la boucle ne sera plus exécutée.

    le 18/05/2018 à 05h01

  • e.agneray-99

    e.agneray-99

    je ne vois pas mon erreur

    le 31/08/2018 à 10h16

  • mram

    mram Administrateur

    Bonjour, que vous dit le message d'erreur ? Ca aidera pour trouver où ça coince.

    le 05/09/2018 à 06h57

  • sterbik.pierrealexandre-1

    sterbik.pierrealexandre-1

    Bonjour ! et rebelotte ! Merci d'avance

    le 26/05/2018 à 22h17

  • mram

    mram Administrateur

    Bonjour, "i++" doit être indenté.

    le 28/05/2018 à 05h33

  • samy.liani-14

    samy.liani-14

    correction indicative: var i =0; var result=""; while (i < var1.length) { result += var1.charAt(i); i++; } alert(result);

    le 20/09/2018 à 23h47

  • Joany

    Joany

    Résolu, encore un problème d'espace dont la localisation ne convient pas au correcteur.( += entouré d'espace)

    le 13/10/2018 à 19h08

  • nkeshimanabrice-37

    nkeshimanabrice-37

    bien vu meriam...

    le 09/05/2019 à 10h13

  • aymoh-14

    aymoh-14

    merci beaucoup encore désolé pour le dérangement

    le 13/12/2018 à 14h43

index.html
script.js
<!DOCTYPE HTML> <html> <head> <title>Exercice rappel 5</title> <script src="script.js"></script> </head> <body> </body> </html>
/* Vous pouvez modifier le contenu de la variable var1 */ var var1 = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit'; /* Ne modifiez pas result ni i */ var result; var i = 0; /* Voter boucle ici */ alert(result);