The analyzer detected a potential error inside the switch operator. A label is used whose name is similar to 'default'. A misprint is probable.
Consider this sample:
int c = getValue();
double weightCoefficient = 0;
switch(c){
case 1:
weightCoefficient += 3 * (/*math formula #1*/);
case 2:
weightCoefficient += 7 * (/*math formula #2*/);
defalt:
weightCoefficient += 0.42;
}
It seems that after the code's work is done, the value of the 'weightCoefficient' variable will be 0.42. Actually the 'weightCoefficient' variable will still equal zero. The point is that 'defalt' is a label, not the 'default' operator. This is the correct code:
int c = getValue();
double weightCoefficient = 0;
switch(c){
case 1:
weightCoefficient += 3 * (/*math formula #1*/);
case 2:
weightCoefficient += 7 * (/*math formula #2*/);
default:
weightCoefficient += 0.42;
}
This diagnostic also triggers when the label name starts with 'case'. It's likely that the space symbol is absent. For example, 'case 1:' has to be written instead of 'case1:'.
This diagnostic is classified as:
|