Variable cannot appear in a constant-expression

I'm having some code related issues regarding a project I am attempting.
As far as I can tell with the error "lednumber" cannot appear in a constant-expression", it is the result of using the switch statement within a for loop.

What alternatives to an embedded switch statement in a for loop do I have, or is there a change I can make to successfully run this line.

void loop()
{
    digitalWrite(msg7RESET, HIGH);	// reset the MSGEQ7's counter
    delay(5);
    digitalWrite(msg7RESET, LOW);

    for (int x = 0; x < 7; x++) {

	if (x = 2) {
	    int spectrumRead = analogRead(msg7DCout);
	    int LEDvolume = map(spectrumRead, 100, 1000, 0, 32);

	    for (int lednumber = 0; lednumber < LEDvolume; lednumber++) {
		switch (lednumber) {
		    case (5 > lednumber) {
			blue = 255;
			leds[lednumber].b = blue;
		    }

		    case (10 > lednumber >= 5) {
			blue = 255);
			green = 51 * (lednumber - 10);
			leds[lednumber].b = blue;
			leds[lednumber].g = green;
		    }

		    case (15 > lednumber >= 20) {
			blue = 255 - 51 * (lednumber - 15);
			green = 255;
			leds[lednumber].b = blue;
			leds[lednumber].g = green;
		    }

		    case (20 > lednumber >= 15) {
			red = 51 * (lednumber - 15);
			green = 255;
			leds[lednumber].r = red;
			leds[lednumber].g = green;
		    }

		    case (25 > lednumber >= 30) {
			red = 255;
			green = 255 - 51 * (lednumber - 25);
			leds[lednumber].r = red;
			leds[lednumber].g = green;
		    }

		    case (30 > lednumber) {
			leds[lednumber].r = 255;
		    }
		}
	    }

	    else
	    {

		digitalWrite(msg7Strobe, LOW);	// output each DC value for each freq band
		delayMicroseconds(35);	// to allow the output to settle
		int spectrumRead = analogRead(msg7DCout);

		int PWMvalue = map(spectrumRead, 100, 800, 0, 255);	// scale analogRead's value to Write's 255 max
		if (PWMvalue < 50)
		    PWMvalue = 0;	// bit of a noise filter, so the LEDs turn off at low levels

		analogWrite(LEDpins[x], PWMvalue);
		digitalWrite(msg7Strobe, HIGH);


	    }
	}
    }
}
 if (x = 2)

Bad. ==

case( 10 > lednumber >= 5)

Bad.

case <constant> :

Your indentation is eye-hurting - please use the auto-format tool before posting code, don't use "copy for forum" and use code tags, not quotes.

Thankyou for replying so quickly. I took your advice, reindenting the code and changing the format for easier reading (sorry).

For the first and second expressions;
I'm still trying to understand how this is bad, and what alternitives I should use. I'm also not sure (limited programming experience in matlab), if it is the expression itself (embedding if- for- switch) is bad, or the non use of "==" in the evaluation.

Case values must be constants. 10 > lednumber >= 5 is not a constant. Even as an if statement, it is not correct structure either.

case 5..9: