Detect button press inside a for() cycle
You could use the Bounce2 library.

Call the update() method regularly and then check the state with read().

e.g.

for (...) {
  button.update();
  if (button.read() == HIGH) {
     //change pattern
     break;
  }
  // Do strip stuff.
}


As an added bonus the bounce library will debounce your button.