在循环内交替执行两个语句

时间:2015-02-15 10:33:44

标签: c loops

我在循环中有两个语句,它们迭代了很多次。

我需要在每次迭代时交替执行两个语句。

实现它的最有效方法是什么? 我可以不使用其他变量吗?

顺便说一句,我在C编码......

PS:我想过在8位int值(int8_t)上使用按位运算符来提取LSB。然后我在每次迭代中将inteager增加1,以便LSB保持交替的1和0。 我能做得更好吗?

1 个答案:

答案 0 :(得分:4)

只需在计数器上使用值为%的mod 2即可。奇数给出一个,偶数给出零。或者,您也可以使用按位运算符&并与1比较,得到相同的结果。第一个选项更通用,可以扩展到多个选项,而第二个选项更快。

#include <stdio.h>

int main()
{
  for (int i=0; i<10; ++i)
  {
    if (i % 2)
    // if (i & 1)
      printf("%d, Option a\n", i);
    else
      printf("%d, Option b\n", i);
  }
  return 0;
}