For-Schleife.

  • Hallohalli liebe User,
    ich hab ein Problem und zwar hat unsere nette Lehrerin uns die Augabe :
    "Erstellen Sie ein Formular zur Eingabe einer ganzen Zahl. Ergänzen Sie einen "Berechne" -Button. Das Programm soll die Summe aller ganzen Zahlen von 1 bis zur eingegebenen Zahl berechnen und mit einem Satz: " Die Summe der Zahlen von 1 bis ... eingegebene Zahl lautet: ...". Denken Sie an den Kopfkommentar Autor, Datum in Ihrem Programm." gestellt, nun hab ich mal herum gebastelt und hab versucht einfach mal ohne die Ausgaben das Formular und die For-Schleife herzustellen, doch ich verzweifel leider ein bisschen, ich hoffe sie können mir helfen.

    Mein HTML - Formular

    Und mein PHP:

    Danke im Vorraus :)

  • for($i = 1; $i <= $zahl; $i++)
    Solange i (zur Zeit 1) kleiner gleich die übergebene Zahl ist, tue das in den geschweiften Klammern und addiere i + 1...

    Gruß crAzywuLf :D

  • Ok, nur mal Schritt für Schritt eben durchgehen was bei deiner Schleife passiert:

    PHP
    for($i = 1; $i > $zahl; $i+2) {
    }


    In den Klammern ( ) der for-Schleife stehen 3 Ausdrücke.
    Der erste initialisiert den Zähler: $i = 1
    Der Zweite überprüft vor jedem Schleifendurchlauf eine Bedingung. Wenn diese erfüllt wird wird die Schleife durchlaufen.
    Bei dir heißt es da

    PHP
    $i>$zahl;


    $i wird von dir mit 1 initialisiert. Die Schleife wird nur solange durchlaufen, wie $i größer als $zahl ist. D.h. damit die Schleife überhaupt nur ein einziges Mal durchlaufen wird muss $zahl <= 0 sein. Sollte das mal eintreten, hättest du eine Endlosschleife, denn...

    Der letzte Ausdruck sagt was am Ende jedes Schleifendurchlaufs mit dem Zähler $i passieren soll. In deinem Fall wird $i nach jedem Durchlauf um 2 erhöht.


    Du möchtest alle Zahlen von 1 bis $zahl zusammenaddieren. Also soll die Schleife solange durchlaufen werden, wie dein Zähler $i (der korrekt mit 1 initialisiert wird) kleiner als $zahl ist.
    Da du jede Zahl von 1 bis $zahl addieren möchtest, und nicht nur jede zweite, sollte der Zähler bei jedem Durchlauf auch nur um 1 erhöht werden.

    Das darfst du dann jetzt selber bauen. :)

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

  • Okay.
    Schon einmal vielen dank, wobei ich es doch um zwei jeweils erhöhen muss, weil ja jede grade Zahl nur addiert werden soll.
    Also habe ich die > falsch herum gemacht :o

    hieße dann


    aber nun wirft mir mein xampp den netten Satz aus "Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\berechnung.php on line 19" ich bin total überfordert :(

  • Oh vielen dank und das alles nur wegen diesem kleinen süßen "="?
    Ist das schrecklich .__. vielen dank.