我在循环内有两个语句,这些语句需要重复很多次。
我需要在每次迭代时交替执行这两个语句。
最有效的方法是什么?
我可以在不使用其他变量的情况下做到这一点吗?
我正在用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/