如果条件为数倍

时间:2014-08-28 00:44:21

标签: c++ c if-statement

我得到一个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))
}

如果声明有更好的方法吗?我是编程世界的新手,有点好奇知道如何做到这一点。

提前致谢

4 个答案:

答案 0 :(得分:1)

你可以使用函数指针。

typedef void (*func)();

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

int check = value / 5;

fpointers [check] ();

答案 1 :(得分: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;
}

答案 2 :(得分:0)

将您从value减去的金额放入数组中,每个范围的索引为5的倍数:

int subtract[] = [2, 5, ...];
if (value > 0 && value < 5*(sizeof subtract/sizeof(*subtract))) {
    value -= subtract[value/5];
    functioncall(value);
}

答案 3 :(得分:0)

  

我得到if条件为5的倍数

要检查数字是否是5的倍数,请使用模数运算符:

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

我需要检查条件,直到值

听起来你需要一个循环。