{"id":90,"date":"2025-08-26T19:43:17","date_gmt":"2025-08-26T18:43:17","guid":{"rendered":"https:\/\/www.alarigger.com\/?p=90"},"modified":"2025-08-26T19:43:17","modified_gmt":"2025-08-26T18:43:17","slug":"bases-de-la-programmation-les-mots-clefs-for","status":"publish","type":"post","link":"https:\/\/www.alarigger.com\/?p=90","title":{"rendered":"\ud83e\udd16Bases de la Programmation : Les Mots Clefs : For loop"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"320\" height=\"240\" src=\"http:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/hzx70U-1.gif\" alt=\"\" class=\"wp-image-1134\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Les <strong>for loop <\/strong>sont pr\u00e9sents dans quasiment tout les scripts Harmony. Le role du for loop est de faire &#8220;boucler&#8221; le bloc de code entre {} un certain nombre de fois.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On s&#8217;en sert typiquement pour ex\u00e9cuter un bloc de code sur chaque \u00e9l\u00e9ment d&#8217;une array.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecrivons un script qui met la position en Z de tout les nodes s\u00e9lectionn\u00e9s \u00e0 0<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On pourrait \u00e9crire une premi\u00e8re version du code comme ceci : <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nfunction set_z_to_zero(_node){\n  node.setTextAttr(_node,\"POSITION.Z\",frame.current(),0)\n}\n\n\nset_z_to_zero(snodes&#91;0&#93;)\nset_z_to_zero(snodes&#91;1&#93;)\nset_z_to_zero(snodes&#91;2&#93;)\nset_z_to_zero(snodes&#91;3&#93;)\nset_z_to_zero(snodes&#91;4&#93;)\nset_z_to_zero(snodes&#91;5&#93;)\nset_z_to_zero(snodes&#91;6&#93;)\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">setTextAttr<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;POSITION.Z&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">frame<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">current<\/span><span style=\"color: #D4D4D4\">(),<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #B5CEA8\">2<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #B5CEA8\">3<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #B5CEA8\">4<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #B5CEA8\">5<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #B5CEA8\">6<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Le probl\u00e8me avec ce code c&#8217;est qu&#8217;il ne fonctionnera que si l&#8217;utilisateur n&#8217;a s\u00e9lectionn\u00e9 pr\u00e9cis\u00e9ment que 7 nodes. Il faudrait un code qui fonctionne avec 0 ou plusieurs nodes s\u00e9lectionn\u00e9s .<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On pourra am\u00e9liorer le code comme ceci : <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nfunction set_z_to_zero(_node){\n  node.setTextAttr(_node,\"POSITION.Z\",frame.current(),0)\n}\n\n\nvar index = 0\n\/\/ on test si l'index existes dans l'array  snode : \nif(typeof arrayName&#91;index&#93; !== 'undefined'){\n  \/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction \n  set_z_to_zero(snodes&#91;index &#93;)\n}\n\/\/ on incr\u00e9mente l'index -> 1\nindex+=1\nif(typeof arrayName&#91;index&#93; !== 'undefined'){\n  \/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction \n  set_z_to_zero(snodes&#91;index &#93;)\n}\n\/\/ on incr\u00e9mente l'index -> 2\nindex+=1\nif(typeof arrayName&#91;index&#93; !== 'undefined'){\n  \/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction \n  set_z_to_zero(snodes&#91;index &#93;)\n}\n\/\/ on incr\u00e9mente l'index -> 3\nindex+=1\nif(typeof arrayName&#91;index&#93; !== 'undefined'){\n  \/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction \n  set_z_to_zero(snodes&#91;index &#93;)\n}\n\/\/ on incr\u00e9mente l'index -> 4\nindex+=1\nif(typeof arrayName&#91;index&#93; !== 'undefined'){\n  \/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction \n  set_z_to_zero(snodes&#91;index &#93;)\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">setTextAttr<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;POSITION.Z&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">frame<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">current<\/span><span style=\"color: #D4D4D4\">(),<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ on test si l&#39;index existes dans l&#39;array  snode : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">typeof<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">arrayName<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93; !== <\/span><span style=\"color: #CE9178\">&#39;undefined&#39;<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ on incr\u00e9mente l&#39;index -&gt; 1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">+=<\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">typeof<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">arrayName<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93; !== <\/span><span style=\"color: #CE9178\">&#39;undefined&#39;<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ on incr\u00e9mente l&#39;index -&gt; 2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">+=<\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">typeof<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">arrayName<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93; !== <\/span><span style=\"color: #CE9178\">&#39;undefined&#39;<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ on incr\u00e9mente l&#39;index -&gt; 3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">+=<\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">typeof<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">arrayName<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93; !== <\/span><span style=\"color: #CE9178\">&#39;undefined&#39;<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ on incr\u00e9mente l&#39;index -&gt; 4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">+=<\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">typeof<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">arrayName<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93; !== <\/span><span style=\"color: #CE9178\">&#39;undefined&#39;<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ il y a un node \u00e0 cet index on peut lui appliquer la fonction <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&#8217;est un peu mieux, l&#8217;utilisateur peut maintenant s\u00e9lectionner entre 0 et 5 nodes et le code ne crash pas car on test \u00e0 chaque foi si l&#8217;index existe. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00e7a fonctionne, mais <em>Normalement<\/em> vous devriez ressentir une sorte de profond d\u00e9sarroi esth\u00e9tique en voyant ce code. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il faudrait que l&#8217;utilisateur puisse selectionner autant de nodes qu&#8217;il souhaite <\/p>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\">Essayons avec le mots cl\u00e9 <strong>while<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le mots-cl\u00e9 while ex\u00e9cute un bloc de code tant qu&#8217;une proposition bool\u00e9enne est vrais. Comme dans un if, la proposition bool\u00e9enne ou condition se trouve entre parenth\u00e8ses apr\u00e8s le while. <\/p>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\"><strong>while ( a &lt; b ) {}<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si dans votre description du code vous utilisez le mots &#8220;tant que&#8221; il est fort probable que vous utiliserez le mots clef <strong>&#8220;while&#8221;<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nfunction set_z_to_zero(_node){\n  node.setTextAttr(_node,\"POSITION.Z\",frame.current(),0)\n}\n\n\/\/ on commence \u00e0 l'index 0 de l'array \nvar index = 0\n\/\/ tant que l'index n'est pas \u00e9gal au dernier index ( nombre d'\u00e9l\u00e9ment dans l'array -1 )\nwhile (index &lt; snodes.length-1){\n  \/\/ on applique la fonction\n  set_z_to_zero(snodes&#91;index &#93;)\n  \/\/ on augment l'index pour passer \u00e0 l'\u00e9l\u00e9ment suivant\n  index+=1\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">setTextAttr<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;POSITION.Z&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">frame<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">current<\/span><span style=\"color: #D4D4D4\">(),<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ on commence \u00e0 l&#39;index 0 de l&#39;array <\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ tant que l&#39;index n&#39;est pas \u00e9gal au dernier index ( nombre d&#39;\u00e9l\u00e9ment dans l&#39;array -1 )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\">-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ on applique la fonction<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ on augment l&#39;index pour passer \u00e0 l&#39;\u00e9l\u00e9ment suivant<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">+=<\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">On gagne tout de suite un peu d&#8217;espace mais \u00e7a fait encore pas mal de lignes. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Personnellement je d\u00e9conseille l&#8217;utilisation du mots-cl\u00e9 <strong>while <\/strong>car si il y a une erreur dans la condition le code peut facilement boucler \u00e0 l&#8217;infini.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce code par exemple comptera jusqu&#8217;\u00e0 l&#8217;infini (enfin jusqu&#8217;\u00e0 ce que Harmony crash) <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>\/\/ a ne pas utiliser sauf si vous voulez faire crasher harmony biensur ! \nvar limit = 100\nvar number = 0\nwhile(limit &lt; 200){ \/\/ cette condtion est toujours true car limit ne change pas !\n  number+=1\n  MessageLog.trace(number)\n}\n\/\/ la partie du code qui ne sera jamais ex\u00e9cut\u00e9e car on se sortira jamais de cette boucle while\nMessageLog.trace(\"code finito!\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/\/ a ne pas utiliser sauf si vous voulez faire crasher harmony biensur ! <\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">limit<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">100<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">number<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">limit<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #B5CEA8\">200<\/span><span style=\"color: #D4D4D4\">){ <\/span><span style=\"color: #6A9955\">\/\/ cette condtion est toujours true car limit ne change pas !<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">number<\/span><span style=\"color: #D4D4D4\">+=<\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">MessageLog<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">trace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">number<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ la partie du code qui ne sera jamais ex\u00e9cut\u00e9e car on se sortira jamais de cette boucle while<\/span><\/span>\n<span class=\"line\"><span style=\"color: #9CDCFE\">MessageLog<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">trace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;code finito!&quot;<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\">le mots-cl\u00e9<strong> for<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour palier aux defaults du <strong>while<\/strong>: le <strong>for <\/strong>nous permet de boucler mais d&#8217;une mani\u00e8re plus contr\u00f4l\u00e9e ! voici sa syntaxe :<\/p>\n\n\n\n<p class=\"has-text-align-center has-contrast-color has-base-background-color has-text-color has-background has-link-color wp-elements-2fbfc79f745f5f37034fecd47b40c850 wp-block-paragraph\"><strong>for ( var i = 0 ; i &lt; my_int ; i++ ) {}<\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nfunction set_z_to_zero(_node){\n  node.setTextAttr(_node,\"POSITION.Z\",frame.current(),0)\n}\n\n\/\/ on retrouve le code du while mais \u00e0 l'horizontale : \nfor(var index = 0 ; index &lt; snodes.length ; index++){ \n  set_z_to_zero(snodes&#91;index&#93;)\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">setTextAttr<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;POSITION.Z&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">frame<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">current<\/span><span style=\"color: #D4D4D4\">(),<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ on retrouve le code du while mais \u00e0 l&#39;horizontale : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">++){ <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">On ne peut pas faire plus concis ! 3 lignes <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">N\u00e9anmoins cette syntaxe devrait vous perturber un peu : <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>des &#8220;;&#8221; dans des parenth\u00e8ses ? c&#8217;est une sorte de micro code ?<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qu&#8217;est ce qui se passe dans ces parenth\u00e8ses ? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pour comprendre un for Loop il faut bien comprendre les trois blocs contenus dans ses parenth\u00e8ses ()<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Bloc Initialisation<\/strong> : on d\u00e9clare une variable d&#8217;index ( souvent i ) et on lui attribue une valeur de d\u00e9part ( souvent 0 ) . C&#8217;est une d\u00e9claration de variable normale vous pouvez lui donner le nom et la valeur que vous voulez. <\/li>\n\n\n\n<li><strong>Bloc Condition<\/strong> : fonctionne comme un <strong>while<\/strong> , si la condition est <strong>true<\/strong> on ex\u00e9cute le code dans le bloc d&#8217;ex\u00e9cution ainsi que celui contenu entre les {}<\/li>\n\n\n\n<li><strong>Bloc Ex\u00e9cution<\/strong> : une ligne de code \u00e0 ex\u00e9cuter quand la condition est true. Dans 99% des cas le code ex\u00e9cut\u00e9 incr\u00e9mente l&#8217;index (i++)<\/li>\n<\/ul>\n\n\n\n<p class=\"has-base-background-color has-background wp-block-paragraph\">On commence par l&#8217;initialisation puis on ex\u00e9cute le 3eme bloc et le code entre {} tant que la condition du deuxi\u00e8me bloc est<strong> true<\/strong> ! <\/p>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Quelques exemples de ce qu&#8217;on peut trouver dans les parenth\u00e8ses <\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-base-background-color has-background has-fixed-layout\"><tbody><tr><td><strong>Initialisation<\/strong><\/td><td><strong>Condition <\/strong><\/td><td><strong>Ex\u00e9cution<\/strong><\/td><\/tr><tr><td><strong>(<\/strong>var index = 0 ;<\/td><td>index &lt; 10;<\/td><td>index++<strong>)<\/strong><\/td><\/tr><tr><td><strong>(<\/strong>var i = 0 ;<\/td><td>i &lt; arr.length;<\/td><td>i++<strong>)<\/strong><\/td><\/tr><tr><td><strong>(<\/strong>var s = 0;<\/td><td>s &lt; snodes.length;<\/td><td>s++<strong>)<\/strong><\/td><\/tr><tr><td><strong>(<\/strong>var j = arr.length-1;<\/td><td>j &gt;= 0;<\/td><td>j&#8211;<strong>)<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Comportement de chaque parenth\u00e8ses<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>for 1&#8212;&gt; <em>ex\u00e9cute le code 10 fois<\/em><\/td><\/tr><tr><td>for 2&#8212;&gt; <em>ex\u00e9cute le code pour chaque \u00e9l\u00e9ment de l&#8217;array<\/em><\/td><\/tr><tr><td>for 3&#8212;&gt; <em>ex\u00e9cute le code pour chaque node s\u00e9lectionn\u00e9<\/em><\/td><\/tr><tr><td>for 4&#8212;&gt; <em>ex\u00e9cute le code pour chaque node <em>s\u00e9lectionn\u00e9<\/em><\/em> <em>du dernier au premier<\/em><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Je vous conseille de tester le code suivant pour bien comprendre le comportement des diff\u00e9rents for loop<\/em> :<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\n\/\/ executer le code X fois \nconst X = 10\nfor(var i = 0; i &lt; X  ; i++){\n  MessageLog.trace(i)\n}\n\n\/\/ parcourir une array en commen\u00e7ant le premier element &#91;0&#93;\nfor(var i = 0 ; i &lt; snodes.length ; i++){\n  MessageLog.trace(i)\n  MessageLog.trace(snodes&#91;i&#93;)\n}\n\n\/\/ parcourir une array en commen\u00e7ant par le dernier element &#91;length-1&#93; et en comptant \u00e0 rebourt i--\nfor(var i =  snodes.length-1 ; i >= 0 ; i--){\n  MessageLog.trace(i)\n  MessageLog.trace(snodes&#91;i&#93;)\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ executer le code X fois <\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">X<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #4FC1FF\">X<\/span><span style=\"color: #D4D4D4\">  ; <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">++){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">MessageLog<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">trace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ parcourir une array en commen\u00e7ant le premier element &#91;0&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">++){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">MessageLog<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">trace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">MessageLog<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">trace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/ parcourir une array en commen\u00e7ant par le dernier element &#91;length-1&#93; et en comptant \u00e0 rebourt i--<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\"> =  <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\">-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\"> &gt;= <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">--){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">MessageLog<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">trace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">MessageLog<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">trace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\">Court-circuiter la boucle : <strong>continue <\/strong>et <strong>break<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Et si le node selectionn\u00e9 courant snodes[i] n&#8217;est pas un PEG ? Si, par exemple il est de type &#8216;COMPOSITE&#8217;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cela ne nous int\u00e9ressera pas de changer sa position en Z car il n&#8217;en a pas. Donc nous risquons de perdre une boucle pour rien, et donc de gaspiller des ressources en calcul.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comment pourrait-on &#8220;sauter&#8221; cette boucle ? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comment pourrait-on et passer \u00e0 la boucle suivante si le node n&#8217;est pas de type &#8216;PEG&#8217; ?<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nfunction set_z_to_zero(_node){\n  node.setTextAttr(_node,\"POSITION.Z\",frame.current(),0)\n}\n\n\n\nfor(var index = 0 ; index &lt; snodes.length ; index++){\n  if(node.type(snodes&#91;i&#93;)!=\"PEG\"){\n    \/\/ ce n'est pas un peg \n  }\n  \/\/ essaye quand meme de changer son Z ? \n  set_z_to_zero(snodes&#91;index&#93;)\n}\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">setTextAttr<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;POSITION.Z&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">frame<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">current<\/span><span style=\"color: #D4D4D4\">(),<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">++){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">type<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;)!=<\/span><span style=\"color: #CE9178\">&quot;PEG&quot;<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/\/ ce n&#39;est pas un peg <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ essaye quand meme de changer son Z ? <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\">Le mots-cl\u00e9 <strong>&#8220;continue&#8221; <\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Le mots cl\u00e9 continue dis \u00e0 l&#8217;ordinateur &#8216;pas besoin de lire les lignes suivante , passe \u00e0 la boucle suivante avec une nouvelle valeur d&#8217;index (i+1)&#8217; &#8216;pioche une nouvelle carte&#8217;<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nfunction set_z_to_zero(_node){\n  node.setTextAttr(_node,\"POSITION.Z\",frame.current(),0)\n}\n\n\nfor(var index = 0 ; index &lt; snodes.length ; index++){\n  \/\/ est ce que c'est un peg ? \n  if(node.type(snodes&#91;i&#93;)!=\"PEG\"){\n    \/\/ ce n'est pas un PEG passe \u00e0 la boucle suivante !\n    continue\n  }\n  \/\/ c'est un peg tu peux executer la suite du code de la boucle \n  set_z_to_zero(snodes&#91;index&#93;)\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">setTextAttr<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;POSITION.Z&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">frame<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">current<\/span><span style=\"color: #D4D4D4\">(),<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">++){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ est ce que c&#39;est un peg ? <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">type<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;)!=<\/span><span style=\"color: #CE9178\">&quot;PEG&quot;<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/\/ ce n&#39;est pas un PEG passe \u00e0 la boucle suivante !<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">continue<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ c&#39;est un peg tu peux executer la suite du code de la boucle <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">continue est tr\u00e8s puissant pour optimiser un scripte. Il vous entraine aussi \u00e0 bien d\u00e9finir les cas o\u00f9 il est utile d&#8217;ex\u00e9cuter une ligne ou non. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si maintenant j&#8217;\u00e9cris un for loop qui cherche quelque chose. Mettons le premier node dans la s\u00e9lection qui contient la cha\u00eene de charact\u00e8res : &#8220;HEAD&#8221; si je veux trouver le node de la t\u00eate dans un rig. <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nvar found_node = \"\"\n\nfor(var index = 0 ; index &lt; snodes.length ; index++){\n  const node_name = node.getName(snodes&#91;i&#93;)\n  if(node_name.indexOf(\"HEAD\")!=-1){\n    \/\/ on a trouv\u00e9 un node avec HEAD ! on peut ranger son chemin dans la variable 'found_node'\n    found_node = snodes&#91;i&#93;\n  }\n  \/\/ on continue \u00e0 chercher meme si on a dit qu'on en voulait qu'un seul \n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">found_node<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">++){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">node_name<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">getName<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">node_name<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">indexOf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;HEAD&quot;<\/span><span style=\"color: #D4D4D4\">)!=-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/\/ on a trouv\u00e9 un node avec HEAD ! on peut ranger son chemin dans la variable &#39;found_node&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">found_node<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/\/ on continue \u00e0 chercher meme si on a dit qu&#39;on en voulait qu&#39;un seul <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Ce code n&#8217;est pas tr\u00e8s optimal ! est ce que vous comprenez pourquoi ? <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imaginons un pirate qui parcourt une liste de 4 \u00eeles pour retrouver son tr\u00e9sor oubli\u00e9. Imaginons qu&#8217;il trouve son tr\u00e9sor dans la deuxi\u00e8me \u00eele mais qu&#8217;il continue quand m\u00eame \u00e0 chercher dans les \u00eeles 3 et 4 pour voir si le tr\u00e9sor qu&#8217;il vient de trouver ne s&#8217;y trouve pas&#8230; (oui c&#8217;est un pirate fou). <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"292\" src=\"http:\/\/www.alarigger.com\/wp-content\/uploads\/2025\/08\/tumblr_m876duUZjF1ry10fwo1_500-1.gif\" alt=\"\" class=\"wp-image-1155\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Eh bien ce code se comporte un peu comme le pirate. Il parcourt tout les nodes, m\u00eame si il a trouv\u00e9 celui qu&#8217;il cherchait.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il faudrait trouver un moyen de lui dire d&#8217;arr\u00eater de chercher :<\/p>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\">c&#8217;est le mots-cl\u00e9 <strong>break <\/strong><\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nvar found_node = \"\"\n\nfor(var index = 0 ; index &lt; snodes.length ; index++){\n  const node_name = node.getName(snodes&#91;i&#93;)\n  if(node_name.indexOf(\"HEAD\")!=-1){\n    found_node = snodes&#91;i&#93;\n    \/\/ on a trouv\u00e9 le node ! tu peux t'arr\u00eater l\u00e0 ! \n    break \n  }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">found_node<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #CE9178\">&quot;&quot;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">length<\/span><span style=\"color: #D4D4D4\"> ; <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">++){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">node_name<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">getName<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">node_name<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">indexOf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;HEAD&quot;<\/span><span style=\"color: #D4D4D4\">)!=-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">found_node<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">i<\/span><span style=\"color: #D4D4D4\">&#93;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/\/ on a trouv\u00e9 le node ! tu peux t&#39;arr\u00eater l\u00e0 ! <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Le mots-cl\u00e9 break permet de sortir de la boucle <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Quand l&#8217;ordinateur rencontre le mots-cl\u00e9 break dans une boucle il saute directement apr\u00e8s le <strong>}<\/strong> de la boucle et lit les lignes suivantes du programme. On gagne ainsi en temps d&#8217;ex\u00e9cution ! surtout si quantit\u00e9 parcourue est grande. <\/p>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\">La Notation condens\u00e9e <strong>&#8216;for in&#8217;<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">il est possible d&#8217;\u00e9crire une boucle qui parcourt une array avec une syntaxe encore plus condens\u00e9e : <\/p>\n\n\n\n<p class=\"has-text-align-center has-base-background-color has-background wp-block-paragraph\"><strong>for ( var i in my_array ) {}<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Avec ce que nous venons de voir vous devriez comprendre ce que fait le code suivant <\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>const snodes = selection.selectedNodes()\n\nfunction set_z_to_zero(_node){\n  node.setTextAttr(_node,\"POSITION.Z\",frame.current(),0)\n}\n\n\nfor(var index in snodes){\n  set_z_to_zero(snodes&#91;index&#93;)\n}\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4FC1FF\">snodes<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">selection<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">selectedNodes<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">node<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">setTextAttr<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">_node<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;POSITION.Z&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">frame<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">current<\/span><span style=\"color: #D4D4D4\">(),<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">var<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">in<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">){<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #DCDCAA\">set_z_to_zero<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">snodes<\/span><span style=\"color: #D4D4D4\">&#91;<\/span><span style=\"color: #9CDCFE\">index<\/span><span style=\"color: #D4D4D4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Exactement la m\u00eame chose qu&#8217;avec un for loop classique !<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Attentions cette notation est trompeuse car beaucoup de choses sont implicites : <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce code parcourt l&#8217;array en commen\u00e7ant par l&#8217;index 0 et en incr\u00e9mentant de 1 jusqu&#8217;a la fin de l&#8217;array. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cette notation condens\u00e9e existe car c&#8217;est le type de for loop qu&#8217;on utilise dans la grande majorit\u00e9 des cas avec une array. Pas besoin d&#8217;\u00e9crire .length ou i++ : tout est inclu dans le <strong>&#8220;in&#8221; <\/strong>, mais ses possibilit\u00e9s sont limit\u00e9es ! <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Les for loop sont pr\u00e9sents dans quasiment tout les scripts Harmony. Le role du for loop est de faire &#8220;boucler&#8221; le bloc de code entre {} un certain nombre de fois. On s&#8217;en sert typiquement pour ex\u00e9cuter un bloc de code sur chaque \u00e9l\u00e9ment d&#8217;une array. Ecrivons un script qui met la position en Z [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,4,33,27],"tags":[],"class_list":["post-90","post","type-post","status-publish","format-standard","hentry","category-bases_programmation","category-cour","category-for_loop","category-prog_key_words"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/posts\/90","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=90"}],"version-history":[{"count":0,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=\/wp\/v2\/posts\/90\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=90"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=90"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alarigger.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=90"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}