How do i get my if to repeat untill another if value is entered.

You reset "val" each time through loop() and you flash the lights based on that variable. Since you are not holding the button down val turns to zero (I guess) and of course the flashing code does not execute.

You need to separate which animation should be playing from the button press, so if there is no button press the animation does not change and keeps playing.

Here's some code to consider:

int animationNumber = 0;

void loop () {


  int val = analogRead(sensePin);

  // set animation based on button
  if ( val >= 500 )
  {
    animationNumber = 1;

  } else if ( val >= 300 ) {

    animationNumber = 2;

  } else if ( val >= 250 ) {

    animationNumber = 3;

  } else if ( val >= 160 ) {

    animationNumber = 4;

  } else if ( val >= 140 ) {

    animationNumber = 5;

  } // else

  switch ( animationNumber )
  {
    case 1:
      // move val == 538 code here
      break;

    case 2:
      // move if (val == 318) code here
      break;

    // add other cases here

    default:
      break;

  } // switch

I think this will act as you want.

Already good advice in this thread on proceeding further, mine is to separate each animation into it's own function, giving each a descriptive name. then call those functions in the switch statement. Pulling the code out of loop() will make it easier to read and change.