2

如果这个问题看起来很无聊,我很抱歉。

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

这是代码中的基本思想:

  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 太模糊了。

你们将如何处理这个问题?

4

3 回答 3

4

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

于 2013-10-28T10:59:52.510 回答
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
}
于 2013-10-28T11:00:22.730 回答
1

%2 只会给你两个选择。

你也可以尝试不同的结构

switch ( iterator%3 )
{
  case 0: // option 0
    break;
  case 1: // option 1
    break;
  case 2: // option 2
    break;
  default:
    break; 
}
++iterator;
于 2013-10-28T11:04:46.233 回答