Frage von David12309, 140

Wieso wird das rot unterstrichen?

Hi,
Ich wollte fragen wieso das unterstrichen ist.
Ich freue mich auf Antworten.

Antwort
von androhecker, 65

Du hast das if Statement nicht mit einer Klammer geöffnet und kannst es dann auch schlecht mit einer schließen, bei solchen if Statements lässt man die schließen Klammer weg, weil dahinter sowieso nur ein Statement zum if Block gehört.

Edit: Und das Semikolon muss auch weg (hinter dem if Statement)

Antwort
von triopasi, 49

Siehe Antwort von ceevee.

Du hast folgendes geschrieben:

if(...);
//Anweisung 1
else
{
//Anweisung 2
}

Das IF beendest du mit dem ";", also wird Anweisung 1 (steht NICHT im IF, da das ja schon mit dem ; endet!) immer ausgeführt. Das ELSE kannst du nur hinter ein IF schreiben, da aber schon Anweisung 1 dazwischen ist, ist vor dem ELSE kein IF, somit darf an der Stelle kein ELSE beginnen.

So ginge es:

if(...)
{
//Anweisung 1 }
else
{
//Anweisung 2
}

Setze geschweifte Klammern, dann machst du solche Fehler nicht. Wenn du mehr Übung hast, kannste die auch mal weglassen.



Kommentar von ceevee ,

Geschweifte Klammern weglassen würde ich in der Situation nie machen, auch wenn es funktioniert - es macht den Code mMn. unübersichtlich und erschwert die Fehlersuche. Wenn der Fragesteller ganz viel Übung hat, dann würde er sicherlich

e.setCancelled(!p.hasPermission("Build.allow"));

schreiben. :)

Kommentar von triopasi ,

So genau hab ich mir den Code nie angeschaut haha xD

Also ich finde das schöner wenn man das weglässt, mache das konsequent so ;) Gerade einfache if-else mit je nur einer Anweisung werden dann viel kürzer ^^ Aber jeder kanns ja machen wie er will..

Antwort
von ceevee, 53

Nimm mal das Semikolon hinter if (p.hasPermission("buildAllow")) weg. ;)

Antwort
von ChristianPl, 18

if (p.hasPermission("")) {   // Kein Simikolon, sonder {
    e.setCancled(false);
} else {
    e.setCancled(true);
}

Aber wenn Du etwas Platz sparen möchtest, mach sowas:

if (!p.hasPermission("")) e.setCancled(true);

oder 

e.setCancled(!p.hasPermission(""));

Keine passende Antwort gefunden?

Fragen Sie die Community