RGB code Problem

hi guys i got another problem with my code for the RGB LED and i cant figure out what it is. when i press a function key to jump up by 5 or -5 it seem to carry on without stopping going al the way up or all the way down.

int redPin = 11;
int greenPin = 10;
int bluePin = 9;

int redValue = 0;
int greenValue = 0;
int blueValue = 0;
char value ;

void setup()
{
    pinMode(redPin, OUTPUT);
    pinMode(greenPin, OUTPUT);
    pinMode(bluePin, OUTPUT);
    
    Serial.begin(9600);
}

void loop()
{
  if (Serial.available()) {
    value = Serial.read();
  }

  if (value == 'q') {
    redValue += 5;
  } 
  else if (value == 'w') {
    greenValue += 5;
  }
  else if (value == 'e') {
    blueValue += 5;
  }
  else if (value == 'a') {
    redValue -= 5;
  } 
  else if (value == 's') {
    greenValue -= 5;
  }
  else if (value == 'd') {
    blueValue -= 5;
  }
  Serial.print(redValue);
        Serial.print(" / ");
        Serial.print(greenValue);
        Serial.print(" / ");  
        Serial.println(blueValue); 

  setColor(redValue, greenValue, blueValue);

}

void setColor(int red, int green, int blue)
{
    analogWrite(redPin, red);
    analogWrite(greenPin, green);
    analogWrite(bluePin, blue);
}