Hallo ich verzweifle momentan an der Logik der folgenden Berechnung:
Nun kommt x = 68 und y[0] = 8969 heraus, obwohl anscheinend beide Werte gleich berechnet wurden
also folgende Fragen:
1) Wieso wurde die Methode foo() bei der Berechnung von x nicht miteinbezogen? (nur so würde x = 68 in der main methode herauskommen oder?)
2) Bei der Berechnung von y[0] wurde foo() anscheinend miteinbezogen, aber bar() nicht mehr. (nur so würde y = 8969 herauskommen oder?) Wieso? Liegt es daran dass in bar() y statt y[0] benutzt wurde? Was wurde dann bei y /= 2 genau geteilt wenn nicht die erste Stelle im Array ( y[0] ) ?
Java:
public class blub {
public static void main(String[] args) {
int x = 23;
int[] y = { 23 };
while (x < 333 && y[0] < 333) {
x *= 3;
y[0] *= 3;
foo(x, y);
x--;
y[0]--;
}
System.out.print("Werte: x=" + x + ", ");
System.out.println("y=" + y[0] + ".");
}
public static void foo(int x, int[] y) {
for (int i = 4; i < 6; i++) {
x *= 3 * i - 2;
y[0] *= 3 * i - 2;
bar(x, y[0]);
}
}
public static int bar(int x, int y) {
x /= 2;
y /= 2;
return x;
}
}
Nun kommt x = 68 und y[0] = 8969 heraus, obwohl anscheinend beide Werte gleich berechnet wurden
also folgende Fragen:
1) Wieso wurde die Methode foo() bei der Berechnung von x nicht miteinbezogen? (nur so würde x = 68 in der main methode herauskommen oder?)
2) Bei der Berechnung von y[0] wurde foo() anscheinend miteinbezogen, aber bar() nicht mehr. (nur so würde y = 8969 herauskommen oder?) Wieso? Liegt es daran dass in bar() y statt y[0] benutzt wurde? Was wurde dann bei y /= 2 genau geteilt wenn nicht die erste Stelle im Array ( y[0] ) ?
Zuletzt bearbeitet: