Exiting an IF or CASE statement Early

Hi, I have a simple setup whereby I toggle a mode each time a switch is pressed. The mode simply chooses which LEDs to light up. To turn the LEDs off the user has to hold the button down. Instead of having just a single colour I wanted a mode which would cycle through the different colours.....and this is where my issue comes in.

When in mode 7, (cycling through the different colours) even if I press the button I have to wait until the cycle has completed before the button press (back to mode 1) is actioned. I would like the button press to be actioned immediately. How can I do this?

Code Below:

//define Arduino pin list
 const int buttonp = 2;
 const int ledp_orange = 3;  
 const int ledp_red = 4;
 const int ledp_green = 5;
 const int ledp_blue = 6;

// define user variables
 int mode = 0;
 int LEDdelayTime = 1000;
 int buttonState = 0;
 int lastButtonState = 0;
 int count = 0;
 int turnOff = 0;

void setup()
{
   pinMode(ledp_red,OUTPUT);
   pinMode(ledp_green,OUTPUT);
   pinMode(ledp_blue,OUTPUT);
   pinMode(ledp_orange,OUTPUT);
   pinMode(buttonp, INPUT);

   Serial.begin(9600);
   attachInterrupt(digitalPinToInterrupt(buttonp), button1, LOW); // so when interrupt zero (digital pin 2) changes state, it will trigger the interrupt and go to function ‘button1’
}  

void loop()
{ 
 //re-initiate variables after interrupt
 count = 0;  
 buttonState = digitalRead(buttonp);

 if(mode > 0)
   {
     turnOff = 0;
   }

     //OFF
   if(turnOff == 1)
   {
   digitalWrite (ledp_red,LOW);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,LOW);
   digitalWrite (ledp_orange,LOW);
   }
     //White
 if(mode == 1)
   {  
   digitalWrite (ledp_red,HIGH);
   digitalWrite (ledp_green,HIGH);
   digitalWrite (ledp_blue,HIGH);
   digitalWrite (ledp_orange,LOW);
   }

   //Red
 if(mode == 2)
   {  
   digitalWrite (ledp_red,HIGH);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,LOW);
   digitalWrite (ledp_orange,LOW);
   }
   
   //Green
  if(mode == 3)
   {
   digitalWrite (ledp_red,LOW);
   digitalWrite (ledp_green,HIGH);
   digitalWrite (ledp_blue,LOW);
   digitalWrite (ledp_orange,LOW);
   }

   //Blue
  if(mode == 4)
   {
   digitalWrite (ledp_red,LOW);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,HIGH);
   digitalWrite (ledp_orange,LOW);
   }
   
   //Orange
   if(mode == 5)
   {
   digitalWrite (ledp_red,LOW);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,LOW);
   digitalWrite (ledp_orange,HIGH);
   }
   
   //Purple
   if(mode == 6)
   {
   digitalWrite (ledp_red,HIGH);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,HIGH);
   digitalWrite (ledp_orange,LOW);
   }

   //Cycle
   if(mode == 7)
   {
   count = 0;
   digitalWrite (ledp_red,HIGH);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,LOW);
   digitalWrite (ledp_orange,LOW);
   delay (LEDdelayTime);
   digitalWrite (ledp_red,LOW);
   digitalWrite (ledp_green,HIGH);
   digitalWrite (ledp_blue,LOW);
   digitalWrite (ledp_orange,LOW);
   delay (LEDdelayTime);
   digitalWrite (ledp_red,LOW);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,HIGH);
   digitalWrite (ledp_orange,LOW);
   delay (LEDdelayTime);
   digitalWrite (ledp_red,LOW);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,LOW);
   digitalWrite (ledp_orange,HIGH);
   delay (LEDdelayTime);
   digitalWrite (ledp_red,HIGH);
   digitalWrite (ledp_green,LOW);
   digitalWrite (ledp_blue,HIGH);
   digitalWrite (ledp_orange,LOW);
   delay (LEDdelayTime);
   }
}

void button1()
{
 lastButtonState = digitalRead(buttonp);
 count++;
 Serial.print ("count is ");
 Serial.println (count);

 if (buttonState != lastButtonState)
   {
     mode++;
     Serial.print ("mode is ");
     Serial.println (mode);
     buttonState = 0;
       if(mode > 7)
         {
           mode = 1;
         } 
   }
   if (count > 25)
     {
       turnOff = 1;
       mode = 0;
     }      
}

You have posted code without using code tags. This creates certain problems and obstacles for other forum members. The code tags make the code look

like this

when posting source code files. It makes it easier to read, and can be copied with a single mouse click.
If you have already posted without using code tags, open your message and select “modify” from the pull down menu labelled, “More”, at the lower left corner of the message. Highlight your code by selecting it (it turns blue), and then click on the “</>” icon at the upper left hand corner. Click on the “Save” button. Code tags can also be inserted manually in the forum text using the [code] and [/code] metatags.

When you are finished that, please read these two posts:

How to use this forum - please read.
and
Read this before posting a programming question …

Don't use delay, so you can check the button state during the animation. Use Millis to keep time. There is a lot of information about this on these forums - it's a very frequen encountered problem

You should look into using a State Machine for this. Also examine: switch/case Don't use delay as it freezes your code execution for that time interval. Don't use interrupts unless you were told to do so for this project.