不能突破的做while循环
问题描述:
海合会(GCC)4.6.3 C89不能突破的做while循环
你好,
我有以下do..while循环
#define NUMBER_DX_CHANNELS 4
do {
/* some some processing here */
i++;
dx_channels++;
} while((dx_channels > CHANNELS_PER_BOARD) || (i < number_fx_resources));
出于某种原因在达到number_fx_resources之前,dx_channels应该先达到4。但是,它绝不会脱离dx_channels> CHANNEL_PER_BOARD。
我可以使用if语句,但是会添加一行额外的代码。
难道我做错了什么吗?是因为我在测试2个条件吗?
非常感谢您的任何建议,
答
您需要:注意while((dx_channels < CHANNELS_PER_BOARD) && (i < number_fx_resources));
:中&&
代替||
你或许想打破,如果任何一个条件是假的?在你的情况下,如果任何一个都是真的,你就继续循环。 – Shahbaz 2012-08-09 10:34:57
你开始使用'dx_channels'的哪个值?数起来,做'while ..>'''听起来很奇怪。 – ShiDoiSi 2012-08-09 10:35:24
它会循环_while_'dx_channels'比'CHANNELS_PER_BOARD'更大__。我认为你的意思是相反的。 – 2012-08-09 10:35:30