Programmablauf

lulu882002

Mitglied
Ich habe eine Frage zu dieser Aufgabe, ich hänge da leider etwas und komme nicht weiter:

Man soll hier die Werte der Variablen rausfinden, pro Zeile. Und eben nur die Werte, wenn die Variable definiert und sichtbar ist.

public class Main {
public static void main(String[] args) {
int a = 2;
while (a<3) {
for (int b = a;
b < 2 * a;
b++) {
if (a/b == 0)
continue;
b = magic(a,b);
}
a++;
}

}
static int magic (int c, int d) {
c++;
return 2 * d-d;
}
}
 

KonradN

Super-Moderator
Mitarbeiter
Wo genau hängst Du fest und kommst nicht weiter? Und was hast Du denn schon heraus gefunden?

Ansonsten Code bitte immer in Code Tags posten. Dazu einfach den Knopf </> links oberhalb des Eingabefeldes nutzen.
 

KonradN

Super-Moderator
Mitarbeiter
Was macht denn das magic? Kannst Du das etwas in Worten ausdrücken? Was passiert da?

Evtl. macht es Sinn, wirklich alles einmal zu beschreiben um sicher zu gehen, dass Du die Bedeutung des Codes verstanden hast.
 

lulu882002

Mitglied
Java:
Code:
public class Main {
    public static void main(String[] args) {
    int a = 2;
    while (a<3) {
        for (int b = a;
        b < 2 * a;
        b++) {
    if (a/b == 0)
        continue;
    b = magic(a,b);
    }
    a++;
}

}
    static int magic (int c, int d) {
        c++;
        return 2 * d-d;
    }
}
 

Jw456

Top Contributor
Du könnte dir auch die Variablen die dich interessieren an Ort und Stelle auf der Konsole ausgeben.
Um zu prüfen ob deine Überlegung richtig ist.
 

KonradN

Super-Moderator
Mitarbeiter
Bei Magic lässt sich die Bedeutung des Zahlenwerts nicht direkt erkennen. Und man muss dies eben ersetzen.
Der Code ist doch offengelegt. Wenn man das also mit unterschiedlichen Werte aufruft: Was passiert dann? Was wird zurück gegeben?


Was kommt z.B. hier raus:
Java:
int a = 2;
int b = 3;
int c = magic(a, b);
System.out.println("a: " + a + " b: " + b + " c: " + c);
raus?

Du kannst sowas ausprobieren, aber das solltest Du auh direkt sehen können.
 

White_Fox

Top Contributor
Bei Magic lässt sich die Bedeutung des Zahlenwerts nicht direkt erkennen. Und man muss dies eben ersetzen.
magic() ist ein Methodenaufruf. Die Methode ist ab Zeile 16 deklariert/definiert.

Die Zeile 10 b = magic(a,b); nimmt das was in a und b drinsteht, verwurstet es entsprechend der Methode in Zeile 16. Die Methode magic ist etwas verwirrend, erinnere dich daran da Parameter in Methodenaufrufen ValueByCopy sind, wenn ich mich recht erinneren. Also Vorsicht.

Am Ende steht in Zeile 10 in b genau das, was magic zurückliefert, was vorher in b stand wird überschrieben.
 

Ähnliche Java Themen

Neue Themen


Oben