Buttons to start different loops

3 different models, partial code, search the differences, what behaviour are you looking for?

model 1

void loop()
{
  while (digitalRead(PIN_A) == HIGH) loopA();
  while (digitalRead(PIN_B) == HIGH) loopB();
}

void loopA()
{
  // do you A thingie
}

void loopB()
{
  // do your B thingie
}

model 2

void loop()
{
  if (digitalRead(PIN_A) == HIGH) loopA();
  if (digitalRead(PIN_B) == HIGH) loopB();
}

void loopA()
{
  while(digitalRead(PIN_B) == LOW)
  {
  // do you A thingie 
  }
}

void loopB()
{
  while(digitalRead(PIN_A) == LOW)
  {
  // do you B thingie
  }
}

model 3

void loop()
{
  if (digitalRead(PIN_A) == HIGH) loopA();
  if (digitalRead(PIN_B) == HIGH) loopB();
}

void loopA()
{
  // do you A thingie
}

void loopB()
{
  // do your B thingie
}

Q: Which model can be extended to lets say 6 button?