While Loop Not Breaking

I am trying to use the following while loop to latch a pump on when a Hi Limit is activated, when the low limit is reached the while loop should exit and the pump turn off.

When testing:

The pump comes on when Hi Limit active
The pump remains on when Hi Limit deactivated

However when the Lo Limit is deactivated the pump stays on

What have a missed?

  if (STATE_FLOAT_HI_LIMIT == HIGH) 
    {  
    while (STATE_FLOAT_LO_LIMIT == HIGH) // Latch - Pump run until Lo Limit deactivated
      {
      digitalWrite(PIN_PUMP_1_ACTIVE, HIGH); //Duty Pump On
      if (STATE_FLOAT_LO_LIMIT == LOW)
          {
          break;
          }
      }
    }
  else (STATE_FLOAT_HI_LIMIT == LOW && STATE_FLOAT_LO_LIMIT == LOW);
    {
    digitalWrite(PIN_PUMP_1_ACTIVE, LOW); //Duty Pump Off
    }

(deleted)

seems obvious now its pointed out i was under the impression the value would update but thank you i have tested and it now works

if (STATE_FLOAT_HI_LIMIT == HIGH) 
    {  
    while (STATE_FLOAT_LO_LIMIT == HIGH) // Latch - Pump run until Lo Limit deactivated
      {
      digitalWrite(PIN_PUMP_1_ACTIVE, HIGH); //Duty Pump On
      STATE_FLOAT_LO_LIMIT = digitalRead(PIN_FLOAT_LO_LIMIT);
      if (STATE_FLOAT_LO_LIMIT == LOW)
          {
          break;
          }
      }
    }
  else (STATE_FLOAT_HI_LIMIT == LOW && STATE_FLOAT_LO_LIMIT == LOW);
    {
    digitalWrite(PIN_PUMP_1_ACTIVE, LOW); //Duty Pump Off
    }

Why not keep it simpler and just go:

    if (digitalRead(PIN_FLOAT_LO_LIMIT))
    {
      ....

MarkT:
Why not keep it simpler and just go:

    if (digitalRead(PIN_FLOAT_LO_LIMIT))

{
      ....

im not following can you expand on this