1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

schleifenproblem in java

  • drained
  • 2. Oktober 2008 um 23:40
  • Unerledigt
  • drained
    2
    drained
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 2. Oktober 2008 um 23:40
    • #1

    Hallo!

    Wahrscheinlich werdet ihr über mein Problem nur den Kopf schütteln, aber ich steh grad voll aufm Schlauch!

    Hier ein teil einer Klausur aus dem ersten Semester Informatik:

    int i = 0;

    for (int j = 10; j < 20 && j % 3 != i % 3; ++j)
    i += j;

    Welchen Wert nimmt i nach Ausführung der Schleife an? Wenn ich den Text in Eclipse eingebe, nimmt i den Wert 21 an.
    Ich komm jedoch im Kopf immer auf 60.
    Wie gesagt, ich steh aufm Schlauch...

    Schon mal Danke im Vorraus!!

  • Paulchen
    1
    Paulchen
    Gast
    • 2. Oktober 2008 um 23:47
    • #2

    Gehen wir's doch Schritt für Schritt durch.

    Anfang: i=0, j=10

    1. Iteration: Schleifenbedingung wegen 10<20 && 10%3 != 0%3 erfüllt. i wird um j=10 erhöht, j um 1. Es gilt i=10, j=11.

    2. Iteration: Schleifenbedingung wegen 11<20 && 11%3 != 10%3 erfüllt. i wird um j=11 erhöht, j um 1. Nun ist i=21, j=12.

    3. Iteration: Diese wird nicht mehr ausgeführt, da 21<20 nicht zutrifft.

    Nach der Schleife ist also i=21.

  • drained
    2
    drained
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 3. Oktober 2008 um 00:06
    • #3

    Ok, Danke. Das mit dem 3. Schritt erschließt sich mir aber nicht ganz. In der Schleife gilt doch als Bedingung, das j<20 ist. Wird also das i durch das logische Und auch mit dieser Bedingung verknüpft, also dass i ebenfalls kleiner 20 sein muss? Wenn dem so ist, hab ich wohl in der Vorlesung an dieser Stelle geschlafen...:sudern:

  • Paulchen
    1
    Paulchen
    Gast
    • 3. Oktober 2008 um 00:11
    • #4

    Ups, Fehler. Die Bedingung i<20 ist sehr wohl noch erfüllt (i ist ja 12); ich hab in Post #2 in der dritten Iteration i und j vertauscht.

    Der zweite Teil der Schleifenbedingung ist i%3 != j%3. Nun sind sowohl 12 als auch 21 durch 3 teilbar, d.h. sowohl i%3=0 als auch j%3=0. Damit ist nach der zweiten Iteration der zweite Teil der Bedingung nicht mehr erfüllt und somit die gesamte Schleifenbedingung, wodurch die Schleife nicht weiter ausgeführt wird.

  • drained
    2
    drained
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 3. Oktober 2008 um 00:21
    • #5

    Ich dachte er prüft in der 2. Iteration 21 %3 und 11%3. Tut er laut Debugger auch. j nimmt den Wert 12 laut dem Teil gar nicht an.

  • Paulchen
    1
    Paulchen
    Gast
    • 3. Oktober 2008 um 00:23
    • #6

    Es geht ja darum, was er zu Beginn der dritten Iteration prüft. j wurde ja nach Ende der zweiten Iteration zum zweiten Mal um 1 inkrementiert und hat daher nun den Wert 12.

  • drained
    2
    drained
    Mitglied
    Punkte
    25
    Beiträge
    4
    • 3. Oktober 2008 um 00:31
    • #7

    Ah, jetzt hab ichs. Ich hab wohl im Kopf j einen Schritt zu spät erhöht.
    Thanks!!:)

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung