если условие для числа, кратного

0

Я получил условие if как кратное 5, мне нужно проверить условие до значения <= 10000. Оператор if выглядит так:

// in main function
if(value >=0 && value <16){
    function(number,value);
}
else if(value >=5 && value <10){
    value-=16;
    function(number,value);
}
....  
// function
int function(int n, int value){
    return (n<<value)|(n>>(16-value))
}

Есть ли лучший способ сделать это, если инструкция. Я новичок в мире программирования и немного любопытно знать, как это сделать.

заранее спасибо

  • 0
    Но что вы хотите сделать в первом и втором случае, мы должны понять, что вы хотите ....
  • 0
    какая разница между всеми ветками?
Показать ещё 10 комментариев
Теги:
if-statement

4 ответа

0
Лучший ответ

Поместите суммы, которые вы вычитаете из value в массив, индексированный несколькими из 5 для каждого диапазона:

int subtract[] = [2, 5, ...];
if (value > 0 && value < 5*(sizeof subtract/sizeof(*subtract))) {
    value -= subtract[value/5];
    functioncall(value);
}
  • 0
    Спасибо, это звучит разумно
  • 0
    Таким образом, вам нужно сделать что-то особенное для значений, кратных 16, в дополнение к проверке всех диапазонов 5? Какого черта эта функция все?
1

Вы можете использовать указатели на функции.

typedef void (*func)();

func fpointers[] = {func1, func2, func3}

int check = value / 5;

fpointers [check] ();
  • 0
    он вызывает ту же функцию, просто изменяя значение аргумента.
0

Если вам нужно оценить условие для кратных 5, я предлагаю вам использовать swich case

int check = value/5;

switch(check)
{
   case 0:        // 0 <= value < 5
    // do things
   break;

   case 1 :       // 5 <= value < 10
    // do things ...
   break;

   .............


   default:
   break;
}
  • 0
    проблема в том, что если я использую этот случай переключения, это сделает 200 случаев, есть ли лучший подход
  • 2
    Есть ли какой-то шаблон, что вам нужно сделать для каждого случая? Если они могут быть вычислены из value/5 , то просто сделайте это вместо того, чтобы писать множество случаев.
Показать ещё 2 комментария
0

Я получил условие if как кратное 5

Чтобы проверить, является ли число кратным 5, используйте оператор модуля:

if (number % 5 == 0) ...

мне нужно проверить, будет ли условие до значения <= 10000

Это звучит так, будто вам нужен цикл.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню