programming emergency

regarding my previous question the matter has been solved and big thanks to whoever helped or tried to, but after writing a messy janky barely working code it caused the servos (MG995) to have a seizure. As soon as they are plugged into the 5V and GND and their PWM pin they keep trying to rotate a few degrees every second, i've even had them do a sweep even though the code has nothing to do with a sweep. the code is as follows:

#include <Servo.h>
Servo claw,base,extension,elevation;
int in1 = 2;
int in2 = 4;
int in3 = 7;
int in4 = 8;
char val;

void setup() 
{
base.attach(3);
claw.attach(5);
extension.attach(6);
elevation.attach(11);
pinMode(in1, OUTPUT);  
pinMode(in2, OUTPUT); 
pinMode(in3, OUTPUT); 
pinMode(in4, OUTPUT);
Serial.begin(9600);
}

void loop()
{
  while (Serial.available() > 0)
  {
  val = Serial.read();
  Serial.println(val);
  }

  if( val == 'z') // Forward
    {
      digitalWrite(in1, HIGH);
      digitalWrite(in2, LOW);
      digitalWrite(in3, HIGH);
      digitalWrite(in4, LOW); 
    }
  else if(val == 's') // Backward
    {
      digitalWrite(in1, LOW);
      digitalWrite(in2, HIGH);
      digitalWrite(in3, LOW);
      digitalWrite(in4, HIGH); 
    }
  
    else if(val == 'q') //Left
    {
    digitalWrite(in1, LOW);
    digitalWrite(in2, LOW);
    digitalWrite(in3, HIGH);
    digitalWrite(in4, LOW);
    }
    else if(val == 'd') //Right
    {
    digitalWrite(in1, HIGH);
    digitalWrite(in2, LOW);
    digitalWrite(in3, LOW);
    digitalWrite(in4, LOW); 
    }
    else if(val == 'x') //stop
    {
    digitalWrite(in1, LOW);
    digitalWrite(in2, LOW);
    digitalWrite(in3, LOW);
    digitalWrite(in4, LOW); 
    }
     else if(val == 't') //claw open
    {
    claw.write(30);
    }
      else if(val == 'g') //claw close
    {
    claw.write(40);
    }
      else if(val == 'b') //base right  
    {
    base.write(130);
    }
      else if(val == 'v') //base middle
    {
    base.write(100);
    }
      else if(val == 'c') //base left
    {
    base.write(70);
    }
      else if(val == 'y') //up
    {
    elevation.write(30);
    }
     else if(val == 'h') //down
    {
    elevation.write(30);
    }
     else if(val == 'u') //long
    {
    extension.write(30);
    }
     else if(val == 'j') //short
    {
    extension.write(30);
    }
 
    
}

any suggestions on why thy might be doing this?