Übungsaufgabe zu Schleifen

LevKhay

Mitglied
Hallo!

Ich habe vor einiger Zeit aus eigenem Interesse mit Java angefangen.
Habe mir dazu ein schönes Grundkurs-Buch ausgeliehen und bin fleißig am lernen.
Jetzt bin ich zum ersten Mal auf eine Übungsaufgabe gestoßen, wo ich einfgach nicht weiterkomme.
Es geht um for und while Schleife in der Aufgabe. Eigentlich verstehe ich soweit alles, nur komme ich mit Audruck mit Modulo nicht klar. Hier der Code:
Java:
public class breakAndContinue {
         public static void main (String args[])   {
                  for (int i = 0; i < 100; i++)  {
                       if (i == 74) break;
                       if (i % 9 != 0) continue;
                       System.out.println(i);
                  }
                  int i = 0;
                  while (true) {
                       i++;
                       int j  = i * 30;
                       if (j == 1260) break;
                       if (i % 10 != 0) continue;
                       System.out.println(i);
                   }
        }
}

So nun was ich nicht verstehe: In der for Schleife, in der If Anweisung mit dem Modulo heisst der Ausdruck meiner Meinung nach so: " Nehme den Rest aus der Division von i durch 9 und vergleiche es mit 0. Falls der Rest ungleich 0 ist, gehe zum i++(der System.out.println Befehl wird nicht ausgeführt.) Falls der Rest gleich 0 ist(ist er ja beim ersten Schleifendurchlauf) dann gehe weiter zu System.out.println.

Dieser Ansatz ist aber anscheinend falsch! Warum??
Ich danke euch schonmal im Voraus!
 
Zuletzt bearbeitet:
@LevKhay
Was ist denn unklar?
Java:
public class Beispiel
{

    public static void main(String[] args)
    {

        int y = 10;
        int modulo = 3;
        for (int i = 0; i < y; i++)
        {
            if (i % modulo == 0)
            {
                System.out.println(String.format(Locale.GERMAN, "Die Zahl %d ist modulo %d gleich 0%n", i, modulo));
            }
        }

    }
/** Output */
Die Zahl 0 ist modulo 3 gleich 0
Die Zahl 3 ist modulo 3 gleich 0
Die Zahl 6 ist modulo 3 gleich 0
Die Zahl 9 ist modulo 3 gleich 0
}
 
Zuletzt bearbeitet:
Hallo nochmals!! Ich habe das Programm mal laufen lassen und mir die angezeigten Zahlen genau angeguckt. Und siehe da, ich habe begriffen was da genau geschieht!
Für die, die auch Schwierigkeiten mit Modulo Operationen haben, hier meine Erklärung(nur zu der for Schleife, die switch Schleife ist identisch):
Es fängt im Prinzip mit i = 0 an. Danach wird 0 % 9 berechnet, der Rest ist hier 0, also wird nicht mit continue weitergemacht, sondern die Zahl auf dem Bildschirm ausgegeben. Dann wird i um 1 erhöht.
Jetzt wird 1 % 9 berechnet, der Rest ist 1. Und da dieser Rest 1 ungleich 0 ist, wird natürlich sofort über continue zu i++ gesprungen.
So geht das weiter. Ausgegeben werden natürlich die Zahlen 0,9,18,27,36,... da bei diesen Zahlen(also i)
der Rest immer 0 wird und somit der Befehl continue ignoriert wird und stattdessen System.out.println ausgeführt wird.
Bei i = 74 kommt die break Anweisung zum Einsatz und die for Schleife verlassen.

Liebe Grüße,
Lev
 
Hi temi.

Du hast vollkommen recht. Trotzdem konnte ich die Lösung der Aufgabe anfangs nicht nachvollziehen, warum auch immer. Am Ende aber zum Glück doch!
 

Zurück
Oben