对不起,如果这太简单了。我想知道哪个条件正在发生。有没有办法更能捕捉到这一点,而无需在带有 if 结构的块内重复它们?我正在使用 C 语言。

while ( l < 0 || l > 2 || c < 0 || c > 2 )

最佳答案

您可以使用逗号表达式,即像 (expr1,expr2) 之类的东西,它们总是从左到右计算,每个 , 处都有一个序列点;因此,您可以依赖 expr1expr2 之前进行评估,而后者则用作逗号表达式的结果。

有了这个,以下应该可以工作,并且 x 将在 0..3 的范围内,具体取决于哪个条件成立:

int x;
while ( (x=0,l < 0) || (++x,l > 2) || (++x,c < 0) || (++x,c > 2) )

关于c - While 中哪个条件为真?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53254211/

10-09 13:11