for loop not getting started

So I have written this program to help my keep my workflow going. But the for loop that should keep an eye on the countdown won’t start

 const int potPin = A0;
int potVal;
short value;
short studyTime;
const int button = 12;
bool buttonState = 0;
int timeLeft = 90;

#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(0, 1, 8, 9, 10, 11); /// REGISTER SELECT PIN,ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PIN

void setup()

{

  // set up the LCD’s number of columns and rows:

  lcd.begin(16, 2);
  pinMode(button, INPUT);
}

void loop() {
  buttonState = digitalRead(button);
  potVal = analogRead(potPin);
  value = map(potVal, 0, 1023, 0, 90);
  studyTime = value;

  // set the cursor to column 0, line 1
  lcd.setCursor(0, 0);
  lcd.print("Study time:");
  lcd.print(studyTime);
  lcd.print("m");

  if (buttonState == HIGH) {
    for(timeLeft = value; timeLeft <= 0; timeLeft--) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Study left:");
      lcd.print(studyTime);
      lcd.print("m");
      lcd.setCursor(0, 1);
      lcd.print(timeLeft);
      delay(1000);
    }
  } else {
    delay(25);
    lcd.clear();
    lcd.setCursor(0, 0);
  }
}

I have tried checking if the button push was not registering, but it did just fine. I really don’t see anything wrong with code

I can send a picture of the schematic if that would help

Thank you

you've configured the button pin as INPUT and you test if the button pin is HIGH.

a more conventional approach is to configure the pin as INPUT_PULLUP and connect the switch between the pin and ground so the when the button is pressed, the pin is pulled LOW.

Otherwise the pin is floating and the button is not really changing it's state

    for (timeLeft = value; timeLeft <= 0; timeLeft--)

The for loop condition says “while timeLeft is less than or equal to zero”
timeLeft starts with a value of between 0 and 90
Will the for loop condition ever be true ?