Здесь, вероятно, есть следующие биты:
case (b > 18.51 && b < 24.99)
Я заметил, что в вашем коде есть несколько из них, и ваш синтаксис неправильный.
Вышеприведенное должно звучать так:
, поскольку то, что вы фактически написали, эквивалентно ((b> (18.51 && b)) <24.99), которое всегда будет возвращать «истину», поскольку (b> (18.51 && b)) разрешится в 0 или 1, что всегда меньше 24.99.
Изменить синтаксис для операторов case.