Hallo,
bin Java-Anfänger und versuche schon länger aufgeführte Methode nachvollziehen, was aber leider nicht klappt. Hoffe ihr könnt mir da weiterhelfen.
private static void f1(int a) {
for (int i = 1; i < a; i++)
for (int s = i; s <= i*i ; s += i )
System.out.println(s);
}
public static void main(String[] args) {
f1(5);
}
Die Ausgabe ist:
1
2
4
3
6
9
4
8
12
16
Ich komme einfach nicht darauf, weshalb das so ist.
Zunächst ist i=1 und 1<5 ist true, also gehts in die innere Schleife. Dort ist s=1 und s<= 1*1 ist true. Und s+=i müsste 2 ergeben. Also lautet die Ausgabe 2. Woher kommt aber bei der obigen Ausgabe die 1?
Als nächstes geht es wieder zur äußeren Schleife, in der i jetzt aufgrund des inkrements von i 2 ist.
Also i=2 und 2<5 ist true--> ab in die innere Schleife. Dort ist s=2 (da s=i und i=2) und s<=2*2 ergibt true. Und s+=i müsste 6 ergeben, da s=2 und i= 4 aufgrund der 2*2. Aber stimmen tut es iwie nicht.
Bin verwirrt, kann mir einer diese verschachtelte For-Schleife erklären und welche Variable was ausgibt?
Und noch zwei kleine Fragen (im Internet keine Antwort gefunden):
Stimmt das, dass static-Methoden nur aus static-Methoden aufgerufen werden und das sie nur auf static-Variablen zugreifen können?
Kann man protected Variablen in Subklassen verändern? ->Meine Antwort:Ja, die Subklasse hat Zugriff auf die protected Variablen und kann sie verändern.
Vielen Dank schonmal!!
Gruß Maci
bin Java-Anfänger und versuche schon länger aufgeführte Methode nachvollziehen, was aber leider nicht klappt. Hoffe ihr könnt mir da weiterhelfen.
private static void f1(int a) {
for (int i = 1; i < a; i++)
for (int s = i; s <= i*i ; s += i )
System.out.println(s);
}
public static void main(String[] args) {
f1(5);
}
Die Ausgabe ist:
1
2
4
3
6
9
4
8
12
16
Ich komme einfach nicht darauf, weshalb das so ist.
Zunächst ist i=1 und 1<5 ist true, also gehts in die innere Schleife. Dort ist s=1 und s<= 1*1 ist true. Und s+=i müsste 2 ergeben. Also lautet die Ausgabe 2. Woher kommt aber bei der obigen Ausgabe die 1?
Als nächstes geht es wieder zur äußeren Schleife, in der i jetzt aufgrund des inkrements von i 2 ist.
Also i=2 und 2<5 ist true--> ab in die innere Schleife. Dort ist s=2 (da s=i und i=2) und s<=2*2 ergibt true. Und s+=i müsste 6 ergeben, da s=2 und i= 4 aufgrund der 2*2. Aber stimmen tut es iwie nicht.
Bin verwirrt, kann mir einer diese verschachtelte For-Schleife erklären und welche Variable was ausgibt?
Und noch zwei kleine Fragen (im Internet keine Antwort gefunden):
Stimmt das, dass static-Methoden nur aus static-Methoden aufgerufen werden und das sie nur auf static-Variablen zugreifen können?
Kann man protected Variablen in Subklassen verändern? ->Meine Antwort:Ja, die Subklasse hat Zugriff auf die protected Variablen und kann sie verändern.
Vielen Dank schonmal!!
Gruß Maci