Cannot figure out switch case

So I have been working through converting my code to get rid of all the delays so I am now using switch case and millis(). But for the life of me I cannot get this code to run. For simplicity I changed the actual operation to blinking an LED. I also left out setup code, other variables, ect.. but perhaps someone can tell me if there is a glaring error in this section? Thanks if you can!

int currentState = 0;
unsigned long previousMillis = 0;
unsigned long currentMillis;

void loop() 
{      

  unsigned long currentMillis = millis();
  
  switch (currentState) {   

case 0:
   digitalWrite(A10, LOW);          //GND for LED
   digitalWrite(A11, LOW);         //5V for LED
   
  if (currentMillis - previousMillis >= 5000) {
    currentState++; previousMillis = millis(); break;}

case 1:
   digitalWrite(A10, LOW);          //GND for LED
   digitalWrite(A11, LOW);         //5V for LED
   
  if (currentMillis - previousMillis >= 3000) {currentState++; previousMillis = millis(); break; }

case 2:
   digitalWrite(A10, LOW);          //GND for LED
   digitalWrite(A11, HIGH);         //5V for LED
   
  if (currentMillis - previousMillis >= 4000) {currentState++; previousMillis = millis(); break; }
 case 3:  
   digitalWrite(BV10Pin, HIGH);
   
  if (currentMillis - previousMillis >= 6000) {currentState++; previousMillis = millis(); break; }

For each case, move the ‘break;’ outside the ‘if’ statement’s brackets or execution will ‘drop through’ to the next case whenever the condition is not met.

Also, when posting code, it’s a good idea to put each statement on a separate line so it’s easier to read.
Edit: On top of this, it’s best to post all of your code, not just a snippet. A snippet can’t be compiled by those trying to help you.

Follow-up to @OldSteve's post: switch is a looping structure like for, while, and do. break is essentially an executable line of code that breaks the switch loop; just like in for, while and do loops. If break does not run the switch loop continues. (Which can be used to create some very strange code structures.)

This bit of trivia is especially important when a switch is wrapped by for, while, or do. A break breaks the switch not the outer loop.

As always you guys are immensely helpful. That was exactly what I needed! Thanks!!!