Processing void Draw funktioniert nicht?

3 Antworten

Vor einem 'else' muss genau ein Statement oder ein Block stehen. Du hast 2.

a) fill(255,0,0)

b) point(mouseX, mouseY, 20, 20);

Das letzte if davor ist: if (reddhit == true )

ogsC03 
Fragesteller
 25.10.2019, 14:05

Danke für die superschnelle Antwort! :D also muss ich einfach die leere Zeile zwischen : fill(255,0,0) und point(mouseX, mouseY, 20, 20); entfernen, damit es als ein Block gesehen wird? mfg

0
gogogo  25.10.2019, 14:14
@ogsC03

Nein, Leerzeilen zählen nichts.

Du muss wissen, was alles durch das if in der Bedingung steht. Sind es die beiden Statements, so musst du diese vermutlich zu einem Block zusammenfassen.

Leider erkenne ich die Programmiersprache nicht.

Bei C, C++, Java, PHP und JavaScript ist das:

if (reddhit == true )

{

fill(255,0,0);

point(mouseX, mouseY, 20, 20);

}

Allerdings fällt mir noch ein Fehler auf. Welcher Befehl soll im else-Fall ausgeführt werden? Keiner? Dann muss 'else' entfernt werden.

UND: hinter fill(255,0,0) muss das Semikolon, was VeryBestAnswers gefunden hat.

1
NIleis  25.10.2019, 15:48
@gogogo

Das ist vereinfachter Java Code, der für das schnelle erstellen von visuellen Projekten gemacht ist.

1
gogogo  25.10.2019, 15:52
@NIleis

OK, dann ist das ja klar.

Ein if (...) folgt immer EIN Statement. Dieses Statement kann eine Zuweisung, ein Funktionsaufruf, eine Schleife oder ein Block sein. Schleife und Block können sich aus mehreren Statements zusammensetzen.

Optional kommt danach ein 'else' mit einem weiteren Statement (wie eben).

Hier ist deine Logik falsch. Es steht das in Zeile 50 ein herrenloses else. Davor ist ein Statement, das aber zu keine if mehr gehört.

Das if aus Zeile 46 hat als Statement die Zeile 47.

Die Zeile 49 ist losgelöst.

Und nun kommt das else! Der Compiler kann nicht erkennen, zu welchem if es gehört, denn das Statement davor war herrenlos, also nicht der 'true'-Fall eines Ifs.

0

Laut Fehlermeldung fehlt wahrscheinlich ein Semikolon (;) in Zeile 47.

Ich kenne mich mit Processing zwar nicht aus, ich vermute aber stark, dass bei den if-Statements geschweifte Klammern fehlen.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium

Hinter das fill() in Zeile 47 muss ein Semikolon.

Woher ich das weiß:Hobby