Hallo,
ich versuche das Thema der verschachtelten for-Schleifen zu begreifen und möchte zu einer Bestimmten Aufgabe eine Vermutung meinerseits kundtun und hoffe, dass ich, im Falle eines Denkfehlers, eine Erklärung bekomme. Es geht um den folgenden Code:
for(int i=0; i<3; i++) {
for(int j=0; j<i; j++) {
System.out.println(j);
}
}
Würde ich bei println die Ausgabe von i anfordern, würde ich die Werte 1,2,2 bekommen, denn die innere Schleife hat eine Referenz auf die äußere und addiert +1 zu den Werten solange die Bedingung i<3 erfüllt bleibt, soweit ist mir das klar.
Bei der Anforderung der Ausgabe von j hingegen bekomme ich die Werte 0,0,1 raus.
Und genau hier folgt meine Vermutung warum ich bei der Ausgabe von j die genannten Werte bekomme.
Da die innere Schleife von der äußeren abhängig ist, die Bedingung j<i lautet und auf jeden Schleifendurchgang der äußeren Schleife die komplette innere Schleife ausgeführt wird denke ich, dass folgendes passiert:
i=0, j=0 -> Bedingung j<i nicht erfüllt
Ausgabe 0 (Bedingung wurde häufiger nicht erfüllt als erfüllt)
i=1, j=0 -> Bedingung erfüllt
i=1, j=1 -> Bedingung nicht erfüllt
Ausgabe 0 (Dasselbe wie oben, aber dadurch dass j<i und nicht j<=i gegeben ist spielt es keine Rolle, dass die Bedingung genauso oft erfüllt wurde wie nicht erfüllt)
i=2, j=0 -> Bedingung erfüllt
i=2, j=1 -> Bedingung erfüllt
i=2, j=2 -> Bedingung nicht erfüllt
Ausgabe 1 (Bedingung ist häufiger erfüllt als sie es nicht erfüllt ist)
Wäre es an der Stelle auch richtig, dass Bedingung erfüllt als true und das Gegenteil als false anzusehen ?
ich versuche das Thema der verschachtelten for-Schleifen zu begreifen und möchte zu einer Bestimmten Aufgabe eine Vermutung meinerseits kundtun und hoffe, dass ich, im Falle eines Denkfehlers, eine Erklärung bekomme. Es geht um den folgenden Code:
for(int i=0; i<3; i++) {
for(int j=0; j<i; j++) {
System.out.println(j);
}
}
Würde ich bei println die Ausgabe von i anfordern, würde ich die Werte 1,2,2 bekommen, denn die innere Schleife hat eine Referenz auf die äußere und addiert +1 zu den Werten solange die Bedingung i<3 erfüllt bleibt, soweit ist mir das klar.
Bei der Anforderung der Ausgabe von j hingegen bekomme ich die Werte 0,0,1 raus.
Und genau hier folgt meine Vermutung warum ich bei der Ausgabe von j die genannten Werte bekomme.
Da die innere Schleife von der äußeren abhängig ist, die Bedingung j<i lautet und auf jeden Schleifendurchgang der äußeren Schleife die komplette innere Schleife ausgeführt wird denke ich, dass folgendes passiert:
i=0, j=0 -> Bedingung j<i nicht erfüllt
Ausgabe 0 (Bedingung wurde häufiger nicht erfüllt als erfüllt)
i=1, j=0 -> Bedingung erfüllt
i=1, j=1 -> Bedingung nicht erfüllt
Ausgabe 0 (Dasselbe wie oben, aber dadurch dass j<i und nicht j<=i gegeben ist spielt es keine Rolle, dass die Bedingung genauso oft erfüllt wurde wie nicht erfüllt)
i=2, j=0 -> Bedingung erfüllt
i=2, j=1 -> Bedingung erfüllt
i=2, j=2 -> Bedingung nicht erfüllt
Ausgabe 1 (Bedingung ist häufiger erfüllt als sie es nicht erfüllt ist)
Wäre es an der Stelle auch richtig, dass Bedingung erfüllt als true und das Gegenteil als false anzusehen ?