Problema com "goto"

ok este fue el primer programa q hice... despues lo modifique tanto q le quite los goto y le puse muchas cosas diferentes jeje

int ledPin1 = 8;
int ledPin2 = 9;
int ledPin3 = 11;
int ledPin4 = 12;
int fotoRes = 0;
int val = 0;

void setup()

{
pinMode (ledPin1, OUTPUT);
pinMode (ledPin2, OUTPUT);
pinMode (ledPin3, OUTPUT);
pinMode (ledPin4, OUTPUT);
Serial.begin (9600);
}

void loop()
{
val= Serial.read()-48;

if(val =='1')
{
goto encled1;
}

else if (val =='2')
{
goto encled2;
}

else if (val =='3')
{
goto encled3;
}

else if (val =='4')
{
goto encled4;
}

else {goto finFin;}

encled1:
{digitalWrite(ledPin1, HIGH);
goto finFin;}
encled2:
{digitalWrite(ledPin2, HIGH);
goto finFin;}
encled3:
{digitalWrite(ledPin3, HIGH);
goto finFin;}
encled4:
{digitalWrite(ledPin4, HIGH);
goto finFin;}

finFin:
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
delay(500);
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
}