[SOLVED]Problem with code?

Hello. Am I doing something wrong? I'm using Arduino Uno R3(well...a cheaper replica of it) and I've connected to it 1 ping sensor(HC-RS04) and 4 LEDS. I want the LEDS to light up according to distance. For some reason it goes to else. Is this code correct?

#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10
#define led3 9
#define led4 8

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance > 3 && distance < 4)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  }
  else if (distance > 4 && distance < 5)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  }
  else if (distance > 5 && distance < 6)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,LOW);
  }
  else if (distance > 7 && distance < 8)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  }
  else {
  digitalWrite(led,LOW);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  }
  delay(500);
}

? this is my modified version of this ?(works fine):

/*
HC-SR04 Ping distance sensor]
VCC to arduino 5v GND to arduino GND
Echo to Arduino pin 13 Trig to Arduino pin 12
Red POS to Arduino pin 11
Green POS to Arduino pin 10
560 ohm resistor to both LED NEG and GRD power rail
More info at: http://goo.gl/kJ8Gl
Original code improvements to the Ping sketch sourced from Trollmaker.com
Some code and wiring inspired by http://en.wikiversity.org/wiki/User:Dstaub/robotcar
*/

#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance < 4) {  // This is where the LED On/Off happens
    digitalWrite(led,HIGH); // When the Red condition is met, the Green LED should turn off
  digitalWrite(led2,LOW);
}
  else {
    digitalWrite(led,LOW);
    digitalWrite(led2,HIGH);
  }
  if (distance >= 200 || distance <= 0){
    Serial.println("Out of range");
  }
  else {
    Serial.print(distance);
    Serial.println(" cm");
  }
  delay(500);
}
 if (distance > 3 && distance < 4)

Think of an integer that is greater than three AND less than four.

AWOL:

 if (distance > 3 && distance < 4)

Think of an integer that is greater than three AND less than four.

Ooh. I see now. Thank You I'll try.
EDIT: Yep, works! Awesome!

Please don't edit the original post to show the corrected code - it makes the thread hard to follow.
You can show the corrected code in a new post.

AWOL:
Please don't edit the original post to show the corrected code - it makes the thread hard to follow.
You can show the corrected code in a new post.

Hm? I didn't. It's all the same. As you can see there's same mistake(or did you mean that I shouldn't do this in the future? ^^). This is the corrected one:

#define trigPin 13
#define echoPin 12
#define led 11
#define led2 10
#define led3 9
#define led4 8

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  if (distance > 3 && distance < 5)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  }
  else if (distance > 5 && distance < 7)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  }
  else if (distance > 7 && distance < 9)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,LOW);
  }
  else if (distance > 9 && distance < 11)
  {
  digitalWrite(led,HIGH);
  digitalWrite(led2,HIGH);
  digitalWrite(led3,HIGH);
  digitalWrite(led4,HIGH);
  }
// without 'else' it's so much better and smoother.
  delay(50);
}