incompatible Types Problem in Greenfoot

deggit_biber

Aktives Mitglied
Hallo,
ich lerne gerade in der Schule Java und probiere ein wenig rum. Wir arbeiten mit Greenfoot und ich verwende einige Methoden, die Greenfoot bereits mitbringt.

Was soll der Code bewirken. Mein Rover soll eine Fläche spiralförmig erkunden.
Wenn ich in der inneren For-Schleife bin, soll es eine Fallunterscheidung geben. Wenn j=1 ist und kein Huegel vor dem Rover ist, dann soll er in das erste If gehen, sonst in das zweite.

&& kann ich ja nur mit boolean vergleichen. Also dachte ich mir, klug wie ich bin ;-) Mach dir eine Hilfsvariable und setze die auf true, wenn j=1 ist sonst auf False.

Jetzt bekomme ich aber diesen Fehler in der Zeile

If (j=1)
incompatible types: int cannot be converted to boolean.

Aber j wird doch gar nicht konvertiert. Ich will doch nur hilfsVariableJ auf true setzen.

Für eure Hilfe wäre ich sehr dankbar!!!!

viele liebe Grüße,
Deg

Java:
public void umgebungErkunden (int maxAnzahl)
    {             
        boolean hilfsVariableJ;
      
        for (int i = 1; i <= maxAnzahl; i++)
        {
            for (int j = 1; j <= i; j++)
            {
                if (j = 1)
                {
                    hilfsVariableJ = true;
                }
                else
                {
                    hilfsVariableJ = false;
                }
              
              
                if (!huegelVorhanden("vorne") && hilfsVariableJ = true)
                {
                    fahre();
                    drehe("rechts");
                }
                if (!huegelVorhanden("vorne") && hilfsVariableJ = false)
                {
                    fahre();
                }
            }
          
        }
    }
 
Zuletzt bearbeitet von einem Moderator:
j = 1 bedeutet, dass du der Variable j den Wert 1 zuweisen möchtest.
Eine if-Bedingung erfordert jedoch einen boolschen Ausdruck und diesen stellt deine Zuweisung nicht dar.
Würdest du j == 1 verwendet, würde es sich jedoch um einen solchen Ausdruck handeln.
 
Moin,

>> Aber j wird doch gar nicht konvertiert
Doch, quasi schon 😎
Überleg' Dir mal den Unterschied zwischen "if(j=1)" und "if(j==1)" 😀

Gruß Klaus

EDIT: Mist, bitfehler war schneller 😡
 

Zurück
Oben