Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

for-Schleifen-Frage

Empfohlene Antworten

Hallo Leutz !

Hier mal ne Frage:

Was bewirkt folgendes Konstrukt in For-Schleifen:

for(; ;)

{

bla...bla..bla...

}

Hab das mal kurz gesehen.

Dachte mir, daß das ne Endlosschleife sei müsste, wenn kein break o.ä. kommt.

Meine Frage nun: Was passiert nun in der Schleife selbst ??? (Compiler-mässig)

Danke für Eure Erklärungen :-)

gruß gugel

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von gugelhupf:

<STRONG>Hallo Leutz !

Hier mal ne Frage:

Was bewirkt folgendes Konstrukt in For-Schleifen:

for(; ;)

{

bla...bla..bla...

}

Hab das mal kurz gesehen.

Dachte mir, daß das ne Endlosschleife sei müsste, wenn kein break o.ä. kommt.

Meine Frage nun: Was passiert nun in der Schleife selbst ??? (Compiler-mässig)

Danke für Eure Erklärungen :-)

gruß gugel</STRONG>

Hi,

das bewirkt gar nix!!! eine for-Schleife MUSS so aufgebaut sein:

for(Initialisierung; Bedienung; Änderung)

{

...Anweisungen...

}

dachte ich zumindest. Oder? :eek:

Wenn der Compiler merkt dass keine Bedingung eingesetzt(bzw. immer erfuellt ist), dann springt er am Ende der Schleife wieder nach oben. Im Assembler schaut das (symbolisch) dann so aus:

00F8: Bla Hier sind deine uebersetzten

00F9: Bla Commandos in Assembler

00FF: Bla

0102: Bla

0105: AJMP F8 hier springt er einfach wieder zum Start.

Das heisst es ist eine Endlosschleife.

Falls was unklar ist frag einfach nochmal nach.

<FONT COLOR="#a62a2a" SIZE="1">[ 30. Juli 2001 14:41: Beitrag 1 mal editiert, zuletzt von DocNeo ]</font>

@DocNeo:

Thx !

Wusste nicht genau, daß C/C++ Compiler for-Schleifen so übersetzen. Wahrscheinlich gibts da auch semantische kleine Unterschiede zwischen den Compilern.

Sollte selbst mal ein Compilat disassemblieren *ggg*

gruß gugel

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von wauwau:

<STRONG>Hi,

das bewirkt gar nix!!! eine for-Schleife MUSS so aufgebaut sein: ...

</STRONG>

For Schleife im Compiler:

Bsp C++:

xy = 10

for ( int i = 0; i < xy; i++)

{

xy = xy + 5;

cout << xy<< endl;

xy++

}

Mit diesem Code hättest du deine ENDLOSSchleife produziert, da i NIE den Wert von xy ereichen wird.

Der Compiler geht Zeile für Zeile durch,

1) Prüfen ob FOR Bedingung erfüllt, wenn ja, dann geht er in die Schleife rein, nachdem er die Schleife durchlaufen hat, geht er wirder zur FOR Bedingung und prüft die Bedngung erneut, solange bis der"MITTLERE" Teil FALSE ist.

Wie der Compiler durch den Programmcode geht kannst du auch sehr gut sehen, wenn du Debugst.

Hope I could Help you

Hi, ich nehme an Du meinst tatsächlich die Variante ohne Ausstiegsbedingung (;;), bekannt als 4-ever Schleife. Ich wollte dich nur um diese Info bereichern(4-ever!), was genau passiert ist oben bereits treffend dargestellt.

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Buhminho:

<STRONG>...Ausstiegsbedingung...</STRONG>

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Konto

Navigation

Suchen

Suchen

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.