C程序的概念

时间:2013-10-28 10:58:36

标签: c

如果这个问题看起来非常荒谬,我很抱歉。

我无法找到解决此问题的最佳方法。

这是代码中的基本思想:

  int iterator = 0;

  if ((iterator % 2) == 1){
    // do first option
    iterator++;
    return;
  } else if ((iterator % 2) == 0){
    // do second thing
    iterator++;
    return;
  } else if ((iterator % 3) == 0){
    // do third option
    iterator++;
    return;
  } else{
    // error
    return;
  }

本质上,该函数将每秒调用一次(它是Pebble的watchapp)。

我可以获得前两个选项,但我遇到了第三个的问题。我认为这是因为%3太模糊了。

你们怎么会接近这个?

3 个答案:

答案 0 :(得分:4)

你永远不会得到第三个选项,因为迭代器%2可以是0或1。

答案 1 :(得分:4)

这就是你要追求的吗?

if ((iterator % 3) == 0){
    // do first option
} else if ((iterator % 3) == 1){
    // do second thing
} else if ((iterator % 3) == 2){
    // do third option
} 
iterator++;

这可以重写为:

switch (iterator++ % 3) {
case 0:
     // first option
     break;
case 1: 
     // second option
     break;
case 2: 
     // third option
}

答案 2 :(得分:1)

%2只会给你两个选项。

您也可以尝试不同的结构

switch ( iterator%3 )
{
  case 0: // option 0
    break;
  case 1: // option 1
    break;
  case 2: // option 2
    break;
  default:
    break; 
}
++iterator;