Forever and ever .... loops question

I would assume that the block nested in a forever-loop would run, say forever or unti I press some button. However, the program stops after only a few cycles.

What am I doing wrong?

#include <MAKERphone.h>

MAKERphone mp;

void setup() {
  mp.begin(1);
  mp.display.fillScreen(TFT_BLACK);
  mp.popup("A very Nice Program", 2);
}

void loop() {
  mp.update();
  mp.display.fillScreen(TFT_WHITE);
  mp.popup("Now goes it loose", 2);
  delay(500);
  mp.leds[2] = CRGB::Blue;
  mp.leds[3] = CRGB::Red;
  mp.leds[4] = CRGB::Green;
  mp.update();
  mp.display.fillScreen(TFT_CYAN);
  mp.popup("Aba hallo", 2);
  delay(500);
  mp.leds[5] = CRGB::Blue;
  mp.leds[6] = CRGB::Red;
  mp.leds[7] = CRGB::Green;
  mp.update();
}

I’m new here and this probably isn’t the most efficient way of doing it but if you declare an x variable and use a while statement it should work. I’m pretty sure the loop statement is just where the game runs. An example of code I think would be:

MAKERphone mp;

int x = 1;

void setup() {
mp.begin(1);
mp.display.fillScreen(TFT_BLACK);
mp.popup(“A very Nice Program”, 2);
}

void loop() {
do{
mp.update();
mp.display.fillScreen(TFT_WHITE);
mp.popup(“Now goes it loose”, 2);
delay(500);
mp.leds[2] = CRGB::Blue;
mp.leds[3] = CRGB::Red;
mp.leds[4] = CRGB::Green;
mp.update();
mp.display.fillScreen(TFT_CYAN);
mp.popup(“Aba hallo”, 2);
delay(500);
mp.leds[5] = CRGB::Blue;
mp.leds[6] = CRGB::Red;
mp.leds[7] = CRGB::Green;
mp.update();
} while x == 1;
}