tag:forum.selfhtml.org,2005:/self Frage zum Wiki-Artikel „Schleife“ – SELFHTML-Forum 2017-05-02T12:51:45Z https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693071#m1693071 Christof Rüge 2017-04-27T12:32:31Z 2017-04-27T12:32:31Z Frage zum Wiki-Artikel „Schleife“ <p>Ich würde gerne wissen, ob auch bei continue ein Schleifenname angegeben werden kann. Und sicherheitshalber sollte auch angegeben werden, ob auch Schleifen innerhalb anderer Funktionen damit gesteuert werden können. (und sei es nur mit break)</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693072#m1693072 dedlfix 2017-04-27T12:42:14Z 2017-04-27T12:42:14Z Frage zum Wiki-Artikel „Schleife“ <p>Tach!</p> <blockquote> <p>Ich würde gerne wissen, ob auch bei continue ein Schleifenname angegeben werden kann.</p> </blockquote> <p>"Deshalb gibt es zusätzliche Befehle, um <strong>innerhalb</strong> einer Schleife das Geschehen zu kontrollieren."</p> <blockquote> <p>Und sicherheitshalber sollte auch angegeben werden, ob auch Schleifen innerhalb anderer Funktionen damit gesteuert werden können. (und sei es nur mit break)</p> </blockquote> <p>"Innerhalb" schließt aus, dass man von außerhalb was regeln kann. Zudem ist Javascript single-threaded. Wenn eine Schleife läuft, kann nicht anderswo Code parallel laufen.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693074#m1693074 Christian Kruse https://wwwtech.de/about 2017-04-27T13:07:38Z 2017-04-27T13:07:38Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo Christof,</p> <blockquote> <p>Ich würde gerne wissen, ob auch bei continue ein Schleifenname angegeben werden kann.</p> </blockquote> <p>Ja. <code>continue</code> hat die gleichen Eigenschaften wie <code>break</code>.</p> <blockquote> <p>Und sicherheitshalber sollte auch angegeben werden, ob auch Schleifen innerhalb anderer Funktionen damit gesteuert werden können. (und sei es nur mit break)</p> </blockquote> <p>Ich gehe davon aus, dass das geht, aber ich habe es nicht verifiziert - das kannst du ja auch sehr einfach selber ausprobieren. Aber das solltest du auf <strong>keinen Fall</strong> tun. Das führt nur zu schlecht modularisiertem Code und wird eher früher als später Probleme aufwerfen.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693195#m1693195 Rolf b 2017-04-28T15:38:33Z 2017-04-28T15:38:33Z Frage zum Wiki-Artikel „Schleife“ <blockquote> <p>Zudem ist Javascript single-threaded. Wenn eine Schleife läuft, kann nicht anderswo Code parallel laufen.</p> </blockquote> <p>Noch... Die Webworker haben die erste Bresche geschlagen. Um die hier schon angedeuteten Probleme zu vermeiden, laufen sie in einem getrennten Kontext und verlangen ein Messaging Protokoll. Aber wer weiß schon, wann echtes Multithreading mit gemeinsamem Speicher die JavaScript-Welt ins finale Chaos stürzt und ein Thread das i eines anderen zertrumpelt.</p> <p><em>Rolf</em></p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693082#m1693082 Tabellenkalk 2017-04-27T15:56:55Z 2017-04-27T15:56:55Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo,</p> <blockquote> <p>Aber das solltest du auf <strong>keinen Fall</strong> tun.</p> </blockquote> <p>Abgesehen davon, kann ich mir grad keine Situation vorstellen, wo das nötig wäre. Entweder will man mit continue <strong>diese</strong> Schleife, in der man sich grad befindet, neu beginnen oder eben mit break in eine höhere Ebene wechseln.</p> <p>Aber wie gesagt, <code>break</code> und <code>continue</code> sollte sowieso möglichst vermieden werden.</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693102#m1693102 Christian Kruse https://wwwtech.de/about 2017-04-27T19:36:10Z 2017-04-27T19:36:10Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo Tabellenkalk,</p> <blockquote> <p>Aber wie gesagt, <code>break</code> und <code>continue</code> sollte sowieso möglichst vermieden werden.</p> </blockquote> <p>Das halte ich für zu weit gegriffen. Ich verwende <code>break</code> und <code>continue</code> gerne, weil ich damit sicherstellen kann, dass die Abbruch-Bedingungen lesbar bleiben.</p> <p>Aber ich würde immer abraten, von einer inner loop eine outer loop zu steuern und von Funktion A eine Schleife in Funktion B zu steuern, das ist ein no-go – wer soll da noch durchblicken⁉️</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693103#m1693103 dedlfix 2017-04-27T19:41:57Z 2017-04-27T19:41:57Z Frage zum Wiki-Artikel „Schleife“ <p>Tach!</p> <blockquote> <p>Aber ich würde immer abraten, von einer inner loop eine outer loop zu steuern und von Funktion A eine Schleife in Funktion B zu steuern, das ist ein no-go – wer soll da noch durchblicken⁉️</p> </blockquote> <p>Wie machst du denn sowas unter Javascript? Oder meinst du dass Funktion A vom Schleifenkörper in Funktion B aufgerufen wurde? Dann böte es sich eher an, dass A ein entsprechend auswertbares Ergebnis zurückgibt oder eine Exception wirft, die man in B abfangen kann.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693112#m1693112 MudGuard http://www.andreas-waechter.de/ 2017-04-27T20:06:53Z 2017-04-27T20:06:53Z Frage zum Wiki-Artikel „Schleife“ <p>Hi,</p> <blockquote> <p>Aber ich würde immer abraten, von einer inner loop eine outer loop zu steuern</p> </blockquote> <p>bei z.B. einer Suche über ein zweidimensionales Array halte ich es für legitim, bei Auftreten eines Suchtreffers in der inneren Schleife auch gleich die äußere mit abzubrechen.</p> <p>bzw. analog bei einer Suche über ein n-dimensionales Array mit n verschachtelten Schleifen, alle äußeren Schleifen abzubrechen, wenn in der innersten die Suche erfolgreich war.</p> <p>cu,<br> Andreas a/k/a MudGuard</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693105#m1693105 Christian Kruse https://wwwtech.de/about 2017-04-27T19:46:21Z 2017-04-27T19:46:21Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo dedlfix,</p> <blockquote> <blockquote> <p>Aber ich würde immer abraten, von einer inner loop eine outer loop zu steuern und von Funktion A eine Schleife in Funktion B zu steuern, das ist ein no-go – wer soll da noch durchblicken⁉️</p> </blockquote> <p>Wie machst du denn sowas unter Javascript? Oder meinst du dass Funktion A vom Schleifenkörper in Funktion B aufgerufen wurde?</p> </blockquote> <p>Ja.</p> <pre><code class="block bad language-js"><span class="token keyword">function</span> <span class="token function">b</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token literal-property property">foo</span><span class="token operator">:</span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>i <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token operator">++</span>i<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">a</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">function</span> <span class="token function">a</span><span class="token punctuation">(</span><span class="token parameter">i</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">break</span> foo<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Glücklicherweise geht das aber eh nicht, wie ich soeben festgestellt habe:</p> <pre><code class="block">VM100:9 Uncaught SyntaxError: Undefined label 'foo' at b (<anonymous>:3:5) at <anonymous>:1:1 </code></pre> <blockquote> <p>Dann böte es sich eher an, dass A ein entsprechend auswertbares Ergebnis zurückgibt oder eine Exception wirft, die man in B abfangen kann.</p> </blockquote> <p>Ja.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693108#m1693108 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2017-04-27T19:52:51Z 2017-04-27T19:52:51Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo Christian Kruse,</p> <blockquote> <pre><code class="block bad language-js"><span class="token keyword">function</span> <span class="token function">b</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token literal-property property">foo</span><span class="token operator">:</span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>i <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token operator">++</span>i<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">a</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">function</span> <span class="token function">a</span><span class="token punctuation">(</span><span class="token parameter">i</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">break</span> foo<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> </blockquote> <p>Auf so eine Idee würde ja nicht mal ich kommen und das will schon was heißen. </p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Rosen sind rot. </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693114#m1693114 dedlfix 2017-04-27T20:08:34Z 2017-04-27T20:08:34Z Frage zum Wiki-Artikel „Schleife“ <p>Tach!</p> <blockquote> <blockquote> <p>Wie machst du denn sowas unter Javascript? Oder meinst du dass Funktion A vom Schleifenkörper in Funktion B aufgerufen wurde?</p> </blockquote> <p>Ja.</p> <pre><code class="block bad language-js"><span class="token keyword">function</span> <span class="token function">b</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token literal-property property">foo</span><span class="token operator">:</span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>i <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token operator">++</span>i<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">a</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">function</span> <span class="token function">a</span><span class="token punctuation">(</span><span class="token parameter">i</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">break</span> foo<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> <p>Glücklicherweise geht das aber eh nicht, wie ich soeben festgestellt habe:</p> </blockquote> <p>Damit wären ja auch Sprünge kreuz und quer durch den Code möglich, denn es ist ja nicht festgetackert, dass a generell nur von b aus aufgerufen werden kann. Ruft man es also von anderswo auf, soll dann der Code abrupt dort enden und mitten in B weitergehen?</p> <p>Und selbst wenn a aus b aufgerufen würde, sollte das dann a einfach so mittendrin beenden? Na gut, mit einem return springt man auch mitten aus einer Funktion heraus. Aber bei einem solchen Beenden kann man wenigstens recht einfach alles wegräumen, was auf dem Stack für diese Funktion rumliegt. Es ist aber nicht so einfach, bei einem Hineinsprung alles das anzulegen, was angelegt worden wäre, wenn der Code von Anfang an ausgeführt worden wäre.</p> <p>dedlfix.</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693115#m1693115 MudGuard http://www.andreas-waechter.de/ 2017-04-27T20:08:53Z 2017-04-27T20:08:53Z Frage zum Wiki-Artikel „Schleife“ <p>Hi,</p> <blockquote> <pre><code class="block bad language-js"><span class="token keyword">function</span> <span class="token function">b</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token literal-property property">foo</span><span class="token operator">:</span> <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">var</span> i<span class="token operator">=</span><span class="token number">0</span><span class="token punctuation">;</span>i <span class="token operator"><</span> <span class="token number">10</span><span class="token punctuation">;</span> <span class="token operator">++</span>i<span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token function">a</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> <span class="token keyword">function</span> <span class="token function">a</span><span class="token punctuation">(</span><span class="token parameter">i</span><span class="token punctuation">)</span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">break</span> foo<span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> </blockquote> <p>Also bitte - sowas macht man doch auch nicht mit break, das macht man mit goto !!!</p> <p> </p> <p>cu,<br> Andreas a/k/a MudGuard</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693113#m1693113 Christian Kruse https://wwwtech.de/about 2017-04-27T20:07:44Z 2017-04-27T20:07:44Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo MudGuard,</p> <blockquote> <blockquote> <p>Aber ich würde immer abraten, von einer inner loop eine outer loop zu steuern</p> </blockquote> <p>bei z.B. einer Suche über ein zweidimensionales Array halte ich es für legitim, bei Auftreten eines Suchtreffers in der inneren Schleife auch gleich die äußere mit abzubrechen.</p> </blockquote> <p>Es gibt immer Ausnahmen, ja.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693117#m1693117 Christian Kruse https://wwwtech.de/about 2017-04-27T20:10:54Z 2017-04-27T20:10:54Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo dedlfix,</p> <blockquote> <p>Damit wären ja auch Sprünge kreuz und quer durch den Code möglich, denn es ist ja nicht festgetackert, dass a generell nur von b aus aufgerufen werden kann. Ruft man es also von anderswo auf, soll dann der Code abrupt dort enden und mitten in B weitergehen?</p> <p>[…]</p> </blockquote> <p>Was meinst du, warum ich gesagt habe „Das solltest du auf <strong>keinen Fall</strong> tun”? </p> <p>Technisch ist das durchaus möglich, siehe z.B. <code>goto</code>, <code>longjmp</code> und Konsorten.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693391#m1693391 Gunnar Bittersmann selfhtml@bittersmann.de http://bittersmann.de 2017-05-02T11:34:07Z 2017-05-02T11:34:07Z Frage zum Wiki-Artikel „Schleife“ <p>@@MudGuard</p> <blockquote> <p>Also bitte - sowas macht man doch auch nicht mit break, das macht man mit goto !!!</p> </blockquote> <p>Ich vermisse die Zeilennummern.</p> <p>LLAP </p> <div class="signature">-- <br> “When UX doesn’t consider <em>all</em> users, shouldn’t it be known as ‘<em>Some</em> User Experience’ or... SUX? #a11y” —<a href="https://twitter.com/thebillygregory/status/552466012713783297" rel="nofollow noopener noreferrer">Billy Gregory</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693396#m1693396 Christian Kruse https://wwwtech.de/about 2017-05-02T11:58:02Z 2017-05-02T11:58:02Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo Gunnar,</p> <blockquote> <blockquote> <p>Also bitte - sowas macht man doch auch nicht mit break, das macht man mit goto !!!</p> </blockquote> <p>Ich vermisse die Zeilennummern.</p> </blockquote> <p>Das erinnert mich an mein erstes Programm:</p> <pre><code class="block language-basic"><span class="token number">10</span> <span class="token function">PRINT</span> <span class="token string">"Hallo"</span> <span class="token number">20</span> <span class="token keyword">GOTO</span> <span class="token number">10</span> </code></pre> <p>In dem Zusammenhang auch: <a href="http://time.com/69316/basic/" rel="nofollow noopener noreferrer">Fifty years of BASIC</a>.</p> <p>LG,<br> CK</p> <div class="signature">-- <br> <a href="https://wwwtech.de/about" rel="noopener noreferrer">https://wwwtech.de/about</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693398#m1693398 Tabellenkalk 2017-05-02T11:59:01Z 2017-05-02T11:59:01Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo,</p> <blockquote> <p>Ich vermisse die Zeilennummern.</p> </blockquote> <p>Selbst auf dem Mac sollte es Editoren geben, die die Zeilen in der richtigen Reihenfolge durchnummerieren können! Übrigens eine Erfindung von Otto, der es geschafft hat, in seinem BUCH alle Seiten in richtiger Reihenfolge zu beschriften!</p> <p>Gruß<br> Kalk</p> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693407#m1693407 Rolf b 2017-05-02T12:28:46Z 2017-05-02T12:28:56Z Frage zum Wiki-Artikel „Schleife“ <p>Oh ja, solche Fotos wie im Artikel habe ich auch schon stellen müssen. Ganz gelassen beisammenstehen, einer zeigt was, die anderen schauen aufmerksam zu - PASSIERT EINEM REAL PROGRAMMER<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> NIE!</p> <p><em>Rolf</em></p> <hr class="footnotes-sep"> <section class="footnotes"> <ol class="footnotes-list"> <li id="fn1" class="footnote-item"><p>Unter anderem, weil ein Real Programmer nicht im Büro ist, wenn solche Fotos gemacht werden, und man das Listing am Tisch eines Real Programmers nicht zwischen Colabechern und Snackautomatentüten finden würde. <a href="#fnref1" class="footnote-backref">↩︎</a></p> </li> </ol> </section> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693408#m1693408 Gunnar Bittersmann selfhtml@bittersmann.de http://bittersmann.de 2017-05-02T12:37:44Z 2017-05-02T12:38:21Z Frage zum Wiki-Artikel „Schleife“ <p>@@Tabellenkalk</p> <blockquote> <p>Selbst auf dem Mac sollte es Editoren geben, die die Zeilen in der richtigen Reihenfolge durchnummerieren können! Übrigens eine Erfindung von Otto, der es geschafft hat, in seinem BUCH alle Seiten in richtiger Reihenfolge zu beschriften!</p> </blockquote> <p>Also ich halte das für schier unmöglich – bei so vielen verschiedenen Möglichkeiten.</p> <p>Otto hat dann am Ende nicht etwa 1000 Seiten vergessen?</p> <p>LLAP </p> <div class="signature">-- <br> “When UX doesn’t consider <em>all</em> users, shouldn’t it be known as ‘<em>Some</em> User Experience’ or... SUX? #a11y” —<a href="https://twitter.com/thebillygregory/status/552466012713783297" rel="nofollow noopener noreferrer">Billy Gregory</a> </div> https://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693412#m1693412 Tabellenkalk 2017-05-02T12:51:45Z 2017-05-02T12:51:45Z Frage zum Wiki-Artikel „Schleife“ <p>Hallo,</p> <blockquote> <p>Otto hat dann am Ende nicht etwa 1000 Seiten vergessen?</p> </blockquote> <p>höchstens zwölf.</p> <p>Gruß<br> Kalk</p>