我在循环中有两个语句,它们迭代了很多次。
我需要在每次迭代时交替执行两个语句。
实现它的最有效方法是什么? 我可以不使用其他变量吗?
顺便说一句,我在C编码......
PS:我想过在8位int值(int8_t)上使用按位运算符来提取LSB。然后我在每次迭代中将inteager增加1,以便LSB保持交替的1和0。 我能做得更好吗?
答案 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;
}