digitalWrite(dataB, grp == 0 ? 0 : 1);

Nennt sich Konditional Operator

Das ist nicht anderes als:

if (grp == 0)
{
   digitalWrite(dataB, 0);
}
else
{
   digitalWrite(dataB, 1);
}

Oder allgemein:

"Bedingung auswerten" ? "wenn wahr" : "wenn falsch"

Damit kann man auch sowas machen:

int var = (x == 5) ? y : z;

Also eine Variable bedingt initialisieren. Das geht mit einem if/else nicht so, da man die Variable vorher deklarieren muss

1 Like