WinFuture-Forum.de: Bedeutung Codezeile - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Bedeutung Codezeile


#1 Mitglied ist offline   Razorblade 

  • Gruppe: aktive Mitglieder
  • Beiträge: 423
  • Beigetreten: 22. Oktober 04
  • Reputation: 0
  • Wohnort:Bodensee
  • Interessen:Autos<br />Computer und Musik

geschrieben 21. Juli 2005 - 08:45

Kann mir jemand bitte schnell sagen, was in einem C-Code
for(;;)

bedeutet bzw. macht.
0

Anzeige



#2 Mitglied ist offline   Spezi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 478
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Wesel

geschrieben 21. Juli 2005 - 09:25

Hy,

for(;;)


naja ich kenne sowas vom PHP-Code. Das ist eine Schleife wo z.B. $i=0 schon vor der Schleife gesetzt wird und in der Schleife hochgezählt wird, deshalb ist der 1. und der 3. Wert nicht in der Schleife angegeben. Das gleiche mit dem 2. Wert bzw. die Bedingung. Die Bedingung wurde nicht gesetzt weil die Schleife in sich durch eine Bedingung abgebrochen wird.

Hoffentlich war das verständich. :P

Sollte eigentlich bei C-Code nicht viel anders sein.
0

#3 Mitglied ist offline   Razorblade 

  • Gruppe: aktive Mitglieder
  • Beiträge: 423
  • Beigetreten: 22. Oktober 04
  • Reputation: 0
  • Wohnort:Bodensee
  • Interessen:Autos<br />Computer und Musik

geschrieben 21. Juli 2005 - 09:36

Danke, das könnte hinhauen.

Das bedeutet also, dass man mit diesem Befehl eine Variable an mehreren Stellen im Code z.B. hochzählen kann und der hochgezählte Wert dann für zum Beispiel andere For-Schleifen verfügbar ist, ohne dass er in einen anderen Wert kopiert wird?

EDIT:
Aber woher weiß man, welche Variable gezählt werden soll? Das ist da nicht angegeben.

Dieser Beitrag wurde von Razorblade bearbeitet: 21. Juli 2005 - 09:40

0

#4 Mitglied ist offline   Spezi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 478
  • Beigetreten: 24. Februar 04
  • Reputation: 0
  • Wohnort:Wesel

geschrieben 21. Juli 2005 - 09:51

Zitat

Das bedeutet also, dass man mit diesem Befehl eine Variable an mehreren Stellen im Code z.B. hochzählen kann und der hochgezählte Wert dann für zum Beispiel andere For-Schleifen verfügbar ist, ohne dass er in einen anderen Wert kopiert wird?

Ja genau

Zitat

Aber woher weiß man, welche Variable gezählt werden soll? Das ist da nicht angegeben.

Das muss man an den Code in der Schleife erkennen, welche Variable hochgezählt wird. Ich schätze mal das diese Variable meist am Ende der Schleife oder wenn die Schleife mit Bedingungen unterteilt ist, dann immer so in den letzten Zeilen der Bedingungen hochgezählt wird.
0

#5 Mitglied ist offline   Razorblade 

  • Gruppe: aktive Mitglieder
  • Beiträge: 423
  • Beigetreten: 22. Oktober 04
  • Reputation: 0
  • Wohnort:Bodensee
  • Interessen:Autos<br />Computer und Musik

geschrieben 21. Juli 2005 - 09:52

Super, danke. Du hast mir sehr geholfen. ;D
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 21. Juli 2005 - 09:59

das ist einfach ne endlosschleife
0

#7 Mitglied ist offline   Razorblade 

  • Gruppe: aktive Mitglieder
  • Beiträge: 423
  • Beigetreten: 22. Oktober 04
  • Reputation: 0
  • Wohnort:Bodensee
  • Interessen:Autos<br />Computer und Musik

geschrieben 21. Juli 2005 - 10:24

Ja, das resultiert daraus.
Und ich vermute mal, man kann diese Endlosschleife dynamisch unterbrechen, also quasi bei verschiedenen Durchgängen, verschieden oft durchlaufen. Also einen Break setzen, wenn man ihn braucht oder zum Beispiel durch einen IRQ, vermute ich mal.
0

#8 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 21. Juli 2005 - 11:10

mit break kannst du immer aus ner schleife springen.
for(;;)
{
 ...
 if (irgendwas)
  break;
...
}

Dieser Beitrag wurde von Witi bearbeitet: 21. Juli 2005 - 11:10

0

#9 Mitglied ist offline   Radhad 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 26. Juli 05
  • Reputation: 0

geschrieben 03. August 2005 - 12:17

ich wusst garnet dass C for(;:blush: überhaupt zulässt ^^

Beispiel wäre:
void main()
{
  int i;
  
  for(i=1;i<=10;i++)
  {
    printf("%d\n",i);
  }
}


Das Beispiel sollte dir die Zahlen von 1 - 10 untereinander ausgeben. Das sind aber noch die Basics in C :)
0

#10 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 03. August 2005 - 13:24

Ist das denn so schwer?

for (Initialisierung, Bedingung, Aktion) {
Rumpf
}


==

{
  Initialisierung
  while (Bedingung) {
    Rumpf
    Aktion
  }
}


Wobei man zwei Dinge beachten muss:
1. Die Initialisierung ist nur für die Schleife gültig, inklusive Deklaration.
2. Die Aktion kann aus mehreren Statements bestehen, in umgekehrter Reihenfolge. Aktion = Aktion 3, Aktion 2, Aktion 1

Damit kann man letztendlich sogar den Schleifenrumpf nehmen, umkehren und als Summe von Aktionen in den Schleifenkopf packen, aber das ist häßlich.

Die übliche Verwendung ist in der Form

for (Typ Variable = Startwert; Variable <= Endwert; Variable++)


und

for(;;)


ist Initialisierung = leer, Bedingung = leer = immer wahr, Aktion = leer
und somit eine Endlosschleife.
Ordentliche Programmierer schreiben es allerdings lieber ordentlich als

while(true)


um diesen Zusammenhang deutlich auszudrücken.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0