Trying to avoid using a "goto"

I am programming something that if while it's moving it hits a switch, it will stop the program until someone sends an appropriate command back down the USB in the form of the character. However, if someone accidentally sends the wrong character down the USB, it will repeat the loop part of the program again and I don't want that to happen. As far as I know the goto wouldn't cause debugging or flow problems, but I want to see if there's a way to avoid using it at all.

else if (switch4)  {
      Serial.write(254);
      Serial.println("Too far down");
      place1:
      while (!Serial.available())  {
        delay(1);
      }
      char cont1 = Serial.read();
      if (cont1 == 2)  {
        //move the motor here back to neutral on it's axis
      }
      else  {
        Serial.println("Try the reset button");
      }
      goto place1;
      start = 0;
    }
  }

Look at the condition that causes a goto to be performed. Actually, there doesn't appear to be any way to avoid that goto being executed every time. You've created an infinite loop.

You are right to be trying not to do that.

else if (switch4)  {
      Serial.write(254);
      Serial.println("Too far down");
      while (1)
      {
        if (Serial.available())
        {
          char cont1 = Serial.read();
          if (cont1 == 2)  {
        //move the motor here back to neutral on it's axis
          break;
         }
         else
        {
         Serial.println("Try the reset button");
         }
      }
      start = 0;
    }
  }

I made change to your while loop for it to loop indefinitely until 2 is entered and the break will take the execution out of the while (1) and the next to run is start=0;. Hope that's what you wanted.

Ah, I forgot about that handy little "break" statement. Imma go back to my program now and avoid the infinite loop issue.