Program flow question

This:

xfcstart:


  buttonState =digitalRead(xfcbutton);

  if (buttonState ==HIGH) goto xfcstart;

is just the same as while (digitalRead(xfcbutton) == HIGH) { }.

Instead of 'goto' use do/while

This is not the same as a while loop - a "do..while" will always execute the body of the loop at least once, but a "while" may not execute the body of the loop at all.