Switching Values With a Button?

So what I am trying to do here is press a button and switch the Lsetting to the next value between 0-2 every time I press the button. I just can't figure out what to do to make that happen.

Lsetting stands for Light Setting btw.

Code Below

void setup() {

pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, INPUT);

}

// the loop function runs over and over again forever
void loop() {

int bSpeed = 250;
int Lsetting = 3;

if (digitalRead(13) == LOW) {
Lsetting = 1;
}

if (Lsetting == 0) {

digitalWrite(8, HIGH);
delay(bSpeed);
digitalWrite(9, HIGH);
delay(bSpeed);
digitalWrite(10, HIGH);
delay(bSpeed);
digitalWrite(11, HIGH);
delay(bSpeed);
digitalWrite(12, HIGH);
delay(bSpeed);
digitalWrite(8, LOW);
delay(bSpeed);
digitalWrite(9, LOW);
delay(bSpeed);
digitalWrite(10, LOW);
delay(bSpeed);
digitalWrite(11, LOW);
delay(bSpeed);
digitalWrite(12, LOW);
delay(bSpeed);
}
if (Lsetting == 1) {

digitalWrite(8, HIGH);
delay(bSpeed);
digitalWrite(9, HIGH);
delay(bSpeed);
digitalWrite(10, HIGH);
delay(bSpeed);
digitalWrite(11, HIGH);
delay(bSpeed);
digitalWrite(12, HIGH);
delay(bSpeed);
digitalWrite(12, LOW);
delay(bSpeed);
digitalWrite(11, LOW);
delay(bSpeed);
digitalWrite(10, LOW);
delay(bSpeed);
digitalWrite(9, LOW);
delay(bSpeed);
digitalWrite(8, LOW);
delay(bSpeed);
}
if (Lsetting == 2) {

digitalWrite(12, HIGH);
delay(bSpeed);
digitalWrite(11, HIGH);
delay(bSpeed);
digitalWrite(10, HIGH);
delay(bSpeed);
digitalWrite(9, HIGH);
delay(bSpeed);
digitalWrite(8, HIGH);
delay(bSpeed);
digitalWrite(8, LOW);
delay(bSpeed);
digitalWrite(9, LOW);
delay(bSpeed);
digitalWrite(10, LOW);
delay(bSpeed);
digitalWrite(11, LOW);
delay(bSpeed);
digitalWrite(12, LOW);
delay(bSpeed);
}
}

Two words. For loop.

please use code tags.

Are you sure that your button is being read correctly?

I think what you need to do is set up a counter that counts from 1 to 3, incrementing each time the button is pushed. I think you will also have to debounce the switch, otherwise the switch will count and increment multiple times during one button press.

if(buttonispressed){
if(option < 3){
option++;
} else option = 1;
}


switch(option) {

  case 1:
 {
  do thing one;
  break;
 }
case 2:
{
do thing two;
break;
}
case 3:
{
do thing three;
break;
}
}

just to give you an idea of where to start...

Qdeathstar:
I think you will also have to denounce the switch.

Why? Is it in a blasphemous position?

if(buttonispressed){

Wrong!

if(buttonHasBecomePressed)
{