This strikes me as the most elegant solution, mainly because it avoids needing to duplicate the boundary values and precludes any possibility of gaps or overlaps between the ranges. Using the switch/case range approach involves some repetition (which is always a bad idea) and would make it very easy to introduce bugs if you wanted to adjust any of the thresholds.
if(distance < 11)
{
Serial.println("far away");
}
else if(distance < 51)
{
Serial.println("within sight");
}
else if(distance < 101)
{
Serial.println("slow down");
}
else if(distance < 201)
{
Serial.println("almost there");
}
else
{
Serial.println("stop!");
}