Sketch über Schalter aktivieren

hallo,
ich bräuchte Hilfe um meinen bisherigen Sketch einen "Einschalter" hinzuzufügen. Bisher wird ein Schrittmotor angesteuert welcher dann in eine richtung 600 schritte läuft, pause macht und dann die selben schritte wieder zurück(mit Arduino Uno+ Treiber für Schrittmotor). Dem ganzen möchte ich einen rastenden Schalter hinzufügen.
Der Schalter dient zum "freigeben". wenn der Schalter gedrückt ist soll der loop ablauf starten. Wenn der Schalter nicht mehr betätigt wird, soll er den loop teil beenden, aber nicht wieder von vorne anfangen.
bis jetzt hat mein Schalter keine Funktion. Der Fehler muss in meinem sketch liegen, da ich den Schalter einen Pulldown wiederstand gegeben habe und dies über den Seriellen Monitor geprüft habe.
Das ist mein erster Versuch und ich weiß leider nicht weiter. Danke.

(Sketch ohne Schalter)

int Index;

void setup()
{
pinMode(6, OUTPUT); //Enable
pinMode(5, OUTPUT); //Puls
pinMode(4, OUTPUT); //Direction

digitalWrite(6,LOW);
Serial.begin(9600);
pinMode (11, INPUT); //Einschalten
}

void loop()
{

digitalWrite(4,HIGH);

for(Index = 0; Index < 600; Index++)
{
digitalWrite(5,HIGH);
delayMicroseconds(300);
digitalWrite(5,LOW);
delayMicroseconds(300);
}
delay(1000);

digitalWrite(4,LOW);

for(Index = 0; Index < 600; Index++)
{
digitalWrite(5,HIGH);
delayMicroseconds(300);
digitalWrite(5,LOW);
delayMicroseconds(300);
}
delay(3000);
}
Sketch mit Schalter

int Index;
int Schalterzustand;

void setup()
{
pinMode(6, OUTPUT); //Enable
pinMode(5, OUTPUT); //Puls
pinMode(4, OUTPUT); //Direction

digitalWrite(6,LOW);
Serial.begin(9600);
pinMode (11, INPUT); //Einschalten
}

void loop()
{
Schalterzustand = digitalRead(11);
Serial.println(Schalterzustand,DEC);
if (Schalterzustand == 1);
{
digitalWrite (6, LOW);}
{

digitalWrite(4,HIGH);

for(Index = 0; Index < 600; Index++)
{
digitalWrite(5,HIGH);
delayMicroseconds(300);
digitalWrite(5,LOW);
delayMicroseconds(300);
}
delay(1000);

digitalWrite(4,LOW);

for(Index = 0; Index < 600; Index++)
{
digitalWrite(5,HIGH);
delayMicroseconds(300);
digitalWrite(5,LOW);
delayMicroseconds(300);
}
delay(3000);
}


if (Schalterzustand == 0);
{
digitalWrite (6, HIGH);
}
}
if (Schalterzustand == 1);

Durch das Semikolon am Ende ist das Ganze keine wirksame if-Abfrage mehr.