FYI. Here is my standard way of processing a button at the beginning of loop(). I use this pattern frequently:
void loop()
{
static int lastButtonState = digitalRead(Button);
int currButtonState = digitalRead(Button);
if (currButtonState != lastButtonState)
{
delay(50); // debounce
lastButtonState = currButtonState;
if (currButtonState == LOW)
{
// do what you need to do
}
}
// ........rest of loop processing
}