I think I just answered this in another thread

void loop(){
if (digitalRead (button)==0){ // assumes button declared as INPUT with internal pullup enabled
programState = programState +1;
if (programState ==5){ // reset after 5, or whatever amount you select
programState = 1;
delay (25); // may not need if the programs run long enough for the button to debounce
}
switch(programState):
case 1:
// do program 1
break;
case 2:
// do program 2
break;
case 3:
// do program 3
break;
case 4:
// do program 4
break;
case 5:
// do program 5
break;
}
}