lulu: SWITCH-Kontrolle

Beitrag lesen

Huhu Eric

Die 2 Zeilen von dir

$a = Array(0, 100, 500, 1000, 1500, 2000, 2500, ....);
$lvlup = 0; while($a[++$lvlup]<=$charexp && $lvlup<10);

verstehe ich nicht ganz, da hinter while nur eine Bedingung steht, aber nicht, was ausgeführt werden soll ... ?

Hier mal etwas ausführlicher

$a = Array(0, 100, 500, 1000, 1500, 2000, 2500, ....);
$lvlup = 0;

while( $a[$lvlup] <= $charexp && $lvlup<10){
 $lvlup++;
}

Diese Lösungsvariante ist sehr elegant :-)
Henryk benutzt dabei den "pre increment operator".
http://www.php.net/manual/en/language.operators.increment.php

Das sieht kryptischer aus als es ist.
Was Dich verwirrt ist die Tatsache das dieses while-Konstrukt
scheinbar keine Anweisung ausführt.
Diese ist aber im Schleifen Kopf integriert.

In Worten ungefähr

Erhöhe den Zähler lvlup um eins und prüfe ob das zugehörige Array-Element <= $charexp ist.
Wenn ja prüfe zusätzlich ob der Zähler < 10 ist.
(Das ist eine Notausstiegsklausel damit die While-Schleife in jedem Fall beendet wird.)
Das wird solange gemacht bis die Bedingung nicht mehr zutrifft.
Dann enthält der Zähler lvlup den gewünschten Wert.

Viele Grüße

lulu

--
bythewaythewebsuxgoofflineandenjoytheday