Frage von MissJGU, 47

PHP- Schleife: Wie komme ich auf $mod?

Hallo, ich habe einige Probleme mit einer PHP-Schleife (bin noch Anfänger).

Die Schleife sieht so aus:

<?php $var=23; $mod=1; for ($i=1; $i<6; $i++) { $var=$var+$i; $mod=$mod+1; } ?>

Warum hat der Modus hier einen Wert von 6? (Die richtige Rechnung ist scheinbar 1+1=2; 2+1=3; 3+1=4; 4+1=5; 5+1=6) Die Schleife wird also in der Musterlösung bis <6 abgelaufen, aber ich verstehe nicht warum, denn ich dachte, dass nur die $i bis <6 läuft, warum also §mod auch, wenn es nicht in der Bedingung steht?

Vielen Dank für eure Hilfe!

Antwort
von Suboptimierer, 34

Du zählst $mod in der Schleife bei jedem Durchgang mit $mod=$mod+1 hoch.

Kommentar von MissJGU ,

weil die Schleife mit i<6 insgesamt 5 mal durchläuft (mit 1,2,3,4,5) muss auch die Erhöhung  ($mod=$mod+1) 5 mal durchlaufen ? Ist das richtig so? Hatte den Zusammenhang zwischen $i und $mod nicht verstanden weil in den bisherigen Beispielen, die wir hatten immer nur eine Variable in der Bedingung stand und exakt diese dann nur berechnet werden sollte. Dankeschön!

Kommentar von Suboptimierer ,

So wie du die Aufgabe wiedergegeben hast, verstehe ich das so, dass $mod immer fest 1 sein soll.

Dann kannst du anstelle dessen einfach die Zahl 1 überall hinschreiben, wo $mod verwendet werden soll.

Mit Zahlenkonstanten ist es aber leider so wie mit Textkonstanten. Heute noch "Hallo Welt", morgen will man vielleicht einen Engländer begrüßen. Das überall im Quelltext ändern zu müssen, ist müßig.

Dafür gibt es Konstanten. Die sehen in den meisten Sprachen wie Variablen aus, dürfen nur einmal bei der Deklaration einen Wert zugewiesen bekommen, der sich nicht mehr ändern kann.

Ich weiß nicht, wie das in PHP aussieht. Wenn es in PHP keine Konstanten gibt, dann kannst du z. B. anhand der Variablenbezeichnung kenntlich machen, dass sich der Wert nicht verändern darf. Beispiel: $C_MOD. Du erkennst an der Großschreibung und an dem C_ dann sofort, dass du dir selbst auferlegt hast, den Inhalt nicht verändern zu wollen.

Antwort
von webflexer, 28

Gebe doch bei jedem Schleifendurchlauf die Variable $mod aus. Du wirst sehen das $mod immer nur um 1 erhöht wird, ist ja auch klar.

$mod=$mod+$i sollte eigentlich die Lösung sein wenn ich dich richtig verstanden habe.

Kommentar von MissJGU ,

Dankeschön für die Hilfe:)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten