tag:forum.selfhtml.org,2005:/selfFrage zum Wiki-Artikel „Schleife“ – SELFHTML-Forum2017-05-02T12:51:45Zhttps://forum.selfhtml.org/self/2017/apr/27/frage-zum-wiki-artikel-schleife/1693071#m1693071Christof Rüge2017-04-27T12:32:31Z2017-04-27T12:32:31ZFrage 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#m1693072dedlfix2017-04-27T12:42:14Z2017-04-27T12:42:14ZFrage 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#m1693074Christian Krusehttps://wwwtech.de/about2017-04-27T13:07:38Z2017-04-27T13:07:38ZFrage 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#m1693195Rolf b2017-04-28T15:38:33Z2017-04-28T15:38:33ZFrage 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#m1693082Tabellenkalk2017-04-27T15:56:55Z2017-04-27T15:56:55ZFrage 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#m1693102Christian Krusehttps://wwwtech.de/about2017-04-27T19:36:10Z2017-04-27T19:36:10ZFrage 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#m1693103dedlfix2017-04-27T19:41:57Z2017-04-27T19:41:57ZFrage 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#m1693112MudGuardhttp://www.andreas-waechter.de/2017-04-27T20:06:53Z2017-04-27T20:06:53ZFrage 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#m1693105Christian Krusehttps://wwwtech.de/about2017-04-27T19:46:21Z2017-04-27T19:46:21ZFrage 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#m1693108Matthias Apselmatthias.apsel@selfhtml.orghttp://brückentage.info2017-04-27T19:52:51Z2017-04-27T19:52:51ZFrage 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#m1693114dedlfix2017-04-27T20:08:34Z2017-04-27T20:08:34ZFrage 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#m1693115MudGuardhttp://www.andreas-waechter.de/2017-04-27T20:08:53Z2017-04-27T20:08:53ZFrage 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#m1693113Christian Krusehttps://wwwtech.de/about2017-04-27T20:07:44Z2017-04-27T20:07:44ZFrage 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#m1693117Christian Krusehttps://wwwtech.de/about2017-04-27T20:10:54Z2017-04-27T20:10:54ZFrage 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#m1693391Gunnar Bittersmannselfhtml@bittersmann.dehttp://bittersmann.de2017-05-02T11:34:07Z2017-05-02T11:34:07ZFrage 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#m1693396Christian Krusehttps://wwwtech.de/about2017-05-02T11:58:02Z2017-05-02T11:58:02ZFrage 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#m1693398Tabellenkalk2017-05-02T11:59:01Z2017-05-02T11:59:01ZFrage 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#m1693407Rolf b2017-05-02T12:28:46Z2017-05-02T12:28:56ZFrage 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#m1693408Gunnar Bittersmannselfhtml@bittersmann.dehttp://bittersmann.de2017-05-02T12:37:44Z2017-05-02T12:38:21ZFrage 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#m1693412Tabellenkalk2017-05-02T12:51:45Z2017-05-02T12:51:45ZFrage 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>