continuous print of button Pushed
lastButton1State is not initialized and therefore has no strictly defined value. In your case, it appears to have a value of 0 (which is random, it's not due to implicit initialization, which is only done for global variables). The condition if(button1State != lastButton1State) becomes true only if the button is released.
You can check that by changing
if(button1State == LOW){
  Serial.println(&quot;button1Pushed&quot;);
}

to
if(button1State == HIGH){
  Serial.println(&quot;button1 released&quot;);
}

The following should work:
int last_button_state=HIGH; // initialize to HIGH, so the button does not teigger on very first iteration
void setup () {
  // whatever you want to do here
}
void loop() {
  int button_state=digitalRead(button1);
  if (button_state!=last_button_state &amp;&amp; button_state==LOW) {
    Serial.println(&quot;button pressed&quot;);
  }
  else if (button_state!=last_button_state &amp;&amp; button_state==HIGH) {
    Serial.println(&quot;button released&quot;);
  }
  last_button_state=button_state;
}