need help as iam newbee this programe is hanging on the middlle some times runs

int buttonState1 = LOW;
int button0, button1;
int buttonState2 = LOW;
int button2, button3;
int led8Pin = 8;
int led4Pin = 4;
int led6Pin = 6;
int led11Pin = 11;
int led0Pin = 13;
int switchPin1= 3;
int switchPin2= 7;
int switchPin3= 9;
int switchPin4= 10;

int val1;                       
int val2; 


void setup() {
  Serial.begin(9600);
  pinMode(switchPin1, INPUT);
  digitalWrite(switchPin1, HIGH);
  pinMode(switchPin2, INPUT);
  digitalWrite(switchPin2, HIGH);
  pinMode(switchPin3, INPUT);
  digitalWrite(switchPin3, HIGH);
  pinMode(switchPin4, INPUT);
  digitalWrite(switchPin4, HIGH);

  pinMode(led0Pin, OUTPUT);
  pinMode(led8Pin, OUTPUT);
  pinMode(led4Pin, OUTPUT);
  pinMode(led6Pin, OUTPUT); 
  pinMode(led11Pin, OUTPUT);
  digitalWrite(led8Pin, LOW);
  digitalWrite(led4Pin, LOW);
  digitalWrite(led6Pin, LOW); 
  
  }
  
  void loop() 
  
  
   {   val1 = digitalRead(switchPin1);
               delay(50);
        if (val1 == LOW) {
          
        digitalWrite(led8Pin, HIGH); 
        digitalWrite(led0Pin, HIGH);
        delay(1000);
        digitalWrite(led0Pin, LOW);
        delay(1000);
        digitalWrite(led11Pin, HIGH);
        delay(2000);
        digitalWrite(led11Pin, LOW);
        delay(18000);  
        digitalWrite(led8Pin, LOW); 
        
      }
      
        val2 = digitalRead(switchPin2);      
        if (val2 == LOW) {                        
        digitalWrite(led11Pin, HIGH);
        delay(800);
        digitalWrite(led11Pin, LOW);
        delay(2000);  
      }
     
          { button0 = digitalRead(switchPin3);
             delay(100);
             button1 = digitalRead(switchPin3); 

        if (button0 == button1) {
        if (button0 != buttonState1) {
            buttonState1 = button0;
            if (buttonState1 == LOW) {  
            Serial.println("D");      
            
            digitalWrite(led4Pin, HIGH);
            delay(2000);
            digitalWrite(led4Pin, LOW);
            delay(2000);
            digitalWrite(led11Pin, HIGH);
            delay(800);
            digitalWrite(led11Pin, LOW);
            delay(2000);
           } 
         }
      } 
    }

  {
    
    button2 = digitalRead(switchPin4);
    delay(300);
    button3 = digitalRead(switchPin4); 

    if (button2 == button3) {
        if (button2 != buttonState2) {
            buttonState2 = button2;
            if (buttonState2 == HIGH) { 
            Serial.println("B");  
            digitalWrite(led6Pin, HIGH);
            delay(2000);
            digitalWrite(led6Pin, LOW);
            delay(1000);         
            } 
          }
        }
     }
   }

Moderator edit: I added CODE TAGS and merged the two threads because I thought they looked similar. If they're not, let me know and I'll split them again.

please help me the above program works correctly but some times it hangs in the middle the upper half works correctly but when the button program hangs some times it has give o/p when i/p goes high to low i.e edge trigger similarly for button2 it has give o/p when i/p goes low to high edge triggar for both buttons i/p is same