I have a class obj, which has three properties: firstValue, secondValue, thirdValue, all of which range from 0 to 255.
I have a List containing objects of class obj and must divide them into 32 different regions according to the values of firstValue, secondValue and thirdValue. I have been successful using a nested if-else statement like this:
if (obj.firstValue < 15 )
{
if(obj.secondValue <200)
{
if(obj.thirdValue <125)
maincolor[0]++;
else
maincolor[1]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[2]++;
else
maincolor[3]++;
}
}
else if (obj.firstValue < 41)
{
if (obj.secondValue < 200)
{
if (obj.thirdValue < 125)
maincolor[4]++;
else
maincolor[5]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[6]++;
else
maincolor[7]++;
}
}
else if (obj.firstValue < 90)
{
if (obj.secondValue < 200)
{
if (obj.thirdValue < 125)
maincolor[8]++;
else
maincolor[9]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[10]++;
else
maincolor[11]++;
}
}
else if (obj.firstValue < 128)
{
if (obj.secondValue < 200)
{
if (obj.thirdValue < 125)
maincolor[12]++;
else
maincolor[13]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[14]++;
else
maincolor[15]++;
}
}
else if (obj.firstValue < 166)
{
if (obj.secondValue < 200)
{
if (obj.thirdValue < 125)
maincolor[16]++;
else
maincolor[17]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[18]++;
else
maincolor[19]++;
}
}
else if (obj.firstValue < 196)
{
if (obj.secondValue < 200)
{
if (obj.thirdValue < 125)
maincolor[20]++;
else
maincolor[21]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[22]++;
else
maincolor[23]++;
}
}
else if (obj.firstValue < 205)
{
if (obj.secondValue < 200)
{
if (obj.thirdValue < 125)
maincolor[24]++;
else
maincolor[25]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[26]++;
else
maincolor[27]++;
}
}
else
{
if (obj.secondValue < 200)
{
if (obj.thirdValue < 125)
maincolor[28]++;
else
maincolor[29]++;
}
else
{
if (obj.thirdValue < 125)
maincolor[30]++;
else
maincolor[31]++;
}
}
I use maincolor[i] to record the maximum number of the region.
The above method works, but I would like to know if there is any way to make it more readable and less of a performance cost?
This answer is almost similar to most of the answers here. I just want to stress the use of the break once you found a matching value here: