抱歉,如果这太简单了。我想知道哪些条件正在发生。有没有一种方法更能捕捉到这一点,而无需在带有 if 结构的 block 内重复它们?我正在使用 C 语言。
while ( l < 0 || l > 2 || c < 0 || c > 2 )
最佳答案
您可以使用逗号表达式,例如 (expr1,expr2)
,它总是从左到右计算,每个 ,
都有一个序列点;因此,您可能会认为 expr1
在 expr2
之前求值,而后者作为逗号表达式的结果。
这样,下面的代码就可以工作了,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/