norrodar
Goto Top

Allgemeines zur If Schleife

So könnte eine If-Schleife aussehen...
Aber mal im Ernst: Es gibt keine If-Schleifen! Dazu eine kleine Erläuterung an alle Einsteiger...

Man schmunzelt und manchmal kann man sich das Lachen wirklich nicht verkneifen, wenn man hört, dass es wieder jemand geschafft hat, eine If-Schleife zu programmieren.
Ernsthaft: Es ist ein Graus, ein riesen Schmerz in den Ohren - gerade, wenn jemand damit prahlt.

So könnte ja eine If-Schleife aussehen (der Rekursion sei Dank!):
<?php

##--> If-Loop
#-> (c) Niranda.net 2011
#->
##--> Description
#-> Input:
#->		$z		Source value
#->		$t		Target value
#->		$hop	Hop/Step value
#->
#-> Output:
#->		result

function if_loop ($z, $t, $hop) {
	if ($z != $t) {
		$z = $z + $hop;
		$z = if_loop($z, $t, $hop);
	}

	return $z;
}


##--> Example
$i = 0;
$step = 1;
$target = 10;

$result = if_loop($i, $target, $step);
echo $result;		# 10

?>

Kurze Erläuterung zur Aufklärung:
Prinzipiell werden unterschieden:
  • die kopfgesteuerte oder vorprüfende Schleife, bei der die Abbruchbedingung geprüft wird, bevor der Schleifenrumpf durchlaufen wird (meist mit WHILE = während eingeleitet).
  • die fußgesteuerte oder nachprüfende Schleife, bei der nach dem Durchlauf des Schleifenrumpfes die Abbruchbedingung überprüft wird (meist als DO-WHILE = ausführen-während oder REPEAT-UNTIL = wiederholen-bis Konstrukt).
  • die Zählschleife, eine Sonderform der kopfgesteuerten Schleife (meist als FOR = für -Schleife implementiert).
  • die Mengenschleife, eine Sonderform der Zählschleife (meist als FOREACH = für jedes Element der Menge implementiert).
Eine Endlosschleife ohne Abbruchbedingung kann nur von außen unterbrochen werden, etwa durch einen Reset, Interrupt, Defekt, Abschalten des Gerätes oder ähnliches.

(Zitat aus 1 - 14.04.2011, 10Uhr)

Content-Key: 164564

Url: https://administrator.de/contentid/164564

Printed on: April 19, 2024 at 18:04 o'clock

Member: dog
dog Apr 14, 2011 at 08:24:02 (UTC)
Goto Top
Die korrekte Bezeichnung, nämlich dass if eine Kontrollstruktur der Verzweigungs-Gruppe ist bleibst du aber schuldig...

$z = $z + $hop;

Schreibt man als

$z += $hop;

if_loop(10, 9, 1);

Produziert zudem eine Endlosschleife, während es bei einem klassichen for-Loop einen sofortigen Abbruch bewirken würde.
Member: Biber
Biber Apr 17, 2011 at 13:18:56 (UTC)
Goto Top
Moin Niranda,

mir war auch schon immer so, als gäbe es außer kopfgesteuert und fussgesteuert noch irgendetwas Drittes.

Schön, dass du es mal für alle strukturiert aufgedröselt hast.

Ist mir im Bereich "Entwicklung" tausendmal lieber als die vielen "Guck-mal-was-ich-kann"-Zauberkunststückchen,
die gelegentlich bei uns und wöchentlich in diesen Tankstellen-PC-Zeitschriften erscheinen.

Dafür danke
Biber