我在循环内有两个语句,这些语句需要重复很多次。

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

最有效的方法是什么?
我可以在不使用其他变量的情况下做到这一点吗?

我正在用C编码...

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

最佳答案

只需在计数器上使用值%的mod 2。奇数给出1,偶数给出0。另外,您也可以使用按位运算符&并将其与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;
}

关于c - 在循环内交替执行两个语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28525181/

10-14 22:56
查看更多