Reed switch and stepper motor

Hi
Seems to get it workin the way I want it now . I am able to stop the motion abruptly when the reed switch is encountered.
I have pasted my code below .
Thanks Paul

#include <AccelStepper.h>
#define SWITCH 7   //input for REED SWITCH
#define LED 13     //pin for the LED
int incomingByte = 0;
int val = 0;       //used to store input value

// stepper motor pins: STEP, DIRECTION, STEPPER ON/OFF
AccelStepper Stepper1(1,2,3);



void setup() {
  
  for(int i = 0;i <54;i++) {
    pinMode(i,OUTPUT);
    digitalWrite(i,LOW);
  }
  
  pinMode(SWITCH, INPUT);   //SWITCH is input
  pinMode(LED, OUTPUT);   //tell arduino LED is an output
  
   //Start Serial for debuging purposes	
  Serial.begin(115200); // USB comm with PC

  
  // switch stepper chips off 
  digitalWrite(4,HIGH);
 
  Stepper1.setMaxSpeed(500);
  Stepper1.setAcceleration(500);
  spam();
 
}

void spam() {
  Serial.println("--------------------");
  
  Serial.println("1: Stepper1 FORWARD");

  Serial.println("2: STOP");
}



// main loop
void loop() {
  
      if (Serial.available() > 0) {
      incomingByte = Serial.read()-48;
      Serial.print("  Selection:");Serial.println(incomingByte);
      switch(incomingByte) {
          case 1: 
                  Stepper1.setCurrentPosition(0);
                  
                  val=digitalRead(SWITCH);   //read input value from reed switch and store it
                  
                  if(val == 0)     //switch is open
                    { 
                     digitalWrite(4,LOW); digitalWrite(3,HIGH); digitalWrite(2,HIGH); //Serial.println("Stepper1: forward"); 
                     digitalWrite(LED, LOW);
                     Stepper1.moveTo(30000);
                    }
                  
                  if(val == HIGH)
                    {
                     digitalWrite(4,HIGH);
                     Serial.println(Stepper1.currentPosition());
                    }
                  break;
                
          case 2 : digitalWrite(4,HIGH);
                   Serial.println(Stepper1.currentPosition());
                   break;
                  
          
          default :spam();
                   break;
          
        }
      }  
                    
                    
     while(Stepper1.currentPosition() !=Stepper1.targetPosition())
          {
           Stepper1.run();
           val=digitalRead(SWITCH); 
           if(val == HIGH)   //switch is closed
             {
              digitalWrite(4,HIGH);
              digitalWrite(LED, HIGH);
              Stepper1.moveTo(Stepper1.currentPosition());
              Serial.println(Stepper1.currentPosition());
             } 
            
           } 
    
    if(Stepper1.run() ==0)
    digitalWrite(4,HIGH);
    
    
} // main loop