button and LED

Hello, can someone explain in an easy to understand way, what is the significance of having 4 digitalRead's . To me, it seems like a lot but I don't know.
Can someone break down the code in an easy way?

int ledpin=11;
int btnpin=2;

volatile int state = LOW;

void setup()
{
  pinMode(ledpin,OUTPUT);
  pinMode(btnpin,INPUT);
}

void loop()
{
  if(digitalRead(btnpin)==LOW)
  {
    delay(10);
    if(digitalRead(btnpin)==LOW)
    {
      while(digitalRead(btnpin)==LOW);
      delay(10);
      while(digitalRead(btnpin)==LOW);
      state = !state;
      digitalWrite(ledpin,state);
    }
  }
}

Looks like a garbled attempt at a button debounce.

In the surrounding code you tell the processor where the LED and button are connected.
The digitalread() actually reads the binary value from that pin.

The if() simply checks if the button value is high or low, and acts accordingly.
The extra mumbo jumbo is an attempt to introduce a 10mS debounce delay then retest the button.
That’s not the way to do it! It might work, but will cause no end of grief as your programs grow in complexity.

The digitalwrite()s simply set that output bit high or low as defined in the call - to illuminate the on-board LED on pin 13.