Problem with multiple if statements while running motor with ping sensor

I have been having trouble with a loop i am trying to run with a ping sensor and a motor. I am trying to change the power to the motor based on the distance the ping sensor sees. The problem is that it is using all the if statements and making the motor change speeds quickly and not just sticking to the speed that I want for the distance it reads. This is an example of serial monitor output.

19 cm1
19 cm2
19 cm3
19 cm1
19 cm2
19 cm3
19 cm1
19 cm2
19 cm3
56 cm1
56 cm2
56 cm3
Out of range
-217 cm1
-217 cm2
-217 cm3
49 cm1
49 cm2
49 cm3
52 cm1
52 cm2
52 cm3
52 cm1
52 cm2
52 cm3
51 cm1
51 cm2
51 cm3
51 cm1
51 cm2
51 cm3
51 cm1
51 cm2
51 cm3
51 cm1
51 cm2
51 cm3
63 cm1
63 cm2
63 cm3

I put in the cm1, cm2, cm3, cm4 to try to see where the problem was and found that it is going through all of the if statements no matter what distance equals. I want it to just be 5 cm1, 15 cm2, 25 cm3, 35 cm4 ect and go the speeds that are assosiated with those.

void loop() {
  int duration, distance;
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  

if (distance >= 200 || distance <= 0)
  {
  analogWrite(11, 0);
   Serial.println("Out of range");
     delay (100);
  }
  if (distance <=10 || distance > 0)
  {
  analogWrite(11,125);
  Serial.print(distance);
  Serial.println(" cm1");
  delay (100);
  }
  if (distance <=20 || distance > 10)
  {
  analogWrite(11, 175);
  Serial.print(distance);
  Serial.println(" cm2");
  delay (100);
  }
  if (distance <=30 || distance > 20)
  {
  analogWrite(11, 200);
  Serial.print(distance);
  Serial.println(" cm3");
  delay (100);
  }
  else
  {
  analogWrite(11, 255);
  Serial.print(distance);
  Serial.println(" cm4");
  delay (100);
  }

  delay(500);
}

Did you mean &&, not || ?

Thanks, I am a little embarrassed. That "Newbie" below my name could not be more relevant.