Frage von JOKERTHEJOKE, 23

Initialisierung einer Variablen in einer if-Funktion (Greenfoot)?

Hallo, werte GFler! ;D

Ich werde morgen eine Informatikklausur schreiben. bisher haben wir nur ein wenig mit Greenfoot (Java) gearbeitet. In einer Vorbereitungsaufgabe für die Klausur müssen wir eine Koordinate in einer Variable speichern.

Jetzt mein Problem: Ich Initialisiere die Variable erst mit 0, dann will ich sie in einer if-"Verzweigung" neu Initialisieren (mit dem Wert 1). Dann will ich wieder eine if-"Verzweigung" erstellen, die aktiv wird, wenn genau diese Varibale den Wert 1 bekommt. Jedoch funktioniert eine dieser Vorhaben nicht: 1. Entweder, die Variable wird in der if-Funkton nicht neu Initialisiert, oder 2. die Variable in der zweiten if-Funktion wird nicht erkannt und dadurch nicht aktiv.

Hier habe ich einen Screenshot von einem minimalen Greenfoot-Projekt gemacht, in dem mein Problem genau zu sehen ist: https://drive.google.com/file/d/0BzkEKR-RhZVYaUJMZHh2Wnd0eXM/view?usp=sharing .

Wie gesagt, wir schreiben morgen eine Klausur mit Greenfoot, also wäre ich SEHR dankbar für jede Hilfe!! ;)

Antwort
von priesterlein, 22

Beim zweiten mal das "int" vor dem Variablennamen weglassen, dann geht es. Das zweite "int" legt eine NEUE Variable an, die nur innerhalb dieses if gültig ist und den gleichen Namen hat.

Kommentar von JOKERTHEJOKE ,

HEUREKA!!!

Es funktioniert, danke vielmals! ;D

Kommentar von priesterlein ,

Bitte, ich frage mich, wer das wieso negativ bewertete, aber egal. :-)

Wirf ruhig noch mal einen Blick auf die Geltungsbereiche von Variablen.

Kommentar von JOKERTHEJOKE ,

Jetzt habe ich aber noch ein Problem... :( :

Wieso funktioniert hier die letzte if-Funktion nicht? https://drive.google.com/file/d/0BzkEKR-RhZVYQUppS25UZ2FUZFU/view?usp=sharing .

Sorry, wenn ich dich jetz noch mit so etwas koomplexeren Fragen nerven muss... :/

Kommentar von priesterlein ,

Es kann sein, dass rcounter nicht 1 ist oder dass ein erneuter Aufruf von getY nun ein anderes Ergebnis bringt als es vorher in firstturn gespeichert wurde.

Funktionsaufrufe sind immer langsam und so empfehle ich am Anfang von "turn" getX und getY nur einmalig zu benutzen und auf Variablen abzulegen, die dann immer anstelle der Aufrufe eingesetzt werden.

Das war meine letzte Reaktion zu diesem Thema hier.

Antwort
von JOKERTHEJOKE, 15

Gelöst! ;D

Jetzt habe ich aber noch ein Problem... :( :

Wieso funktioniert hier die letzte if-Funktion nicht? https://drive.google.com/file/d/0BzkEKR-RhZVYQUppS25UZ2FUZFU/view?usp=sharing .

Sorry, wenn ich dich jetz noch mit so etwas koomplexeren Fragen nerven muss... :/

Keine passende Antwort gefunden?

Fragen Sie die Community