Вы не указали типы данных ваших переменных, но, исходя из контекста, я предполагаю, что они имеют целочисленный тип. Поскольку все ваши проверки целочисленных интервалов имеют одинаковую «ширину», вы можете заменить несколько проверок диапазона вычислением и одним условным:
if (NumberOfSensor > 0 && NumberOfSensor < 65)
MaxPageNumber = (NumberOfSensor + 7) / 8;
Опять же, это предполагает, что переменные имеют целочисленный тип. В C, когда речь идет строго о целочисленной арифметике и присваивании, целочисленное деление получает floor результата, поэтому, например, 9/8 приводит к 1.
Ваш код не изменяется MaxPageNumber
, если NumberOfSensor
равен <= 0 или> 64. Таким образом, условие if
все еще необходимо, если вы хотите, чтобы код вел себя точно так же, как и оригинал.
Обратите внимание, что приведенный выше расчет имеет тот же результат, что и расчет, опубликованный в другом ответе. Любой из них подойдет.