假设我想从堆栈中弹出对象并检查它们的状态,无论它是否FUP
(面朝上)。
我想继续这样做,直到达到堆栈为空或实例状态未朝上的程度;在这种情况下,我需要将此实例推回并停止循环。
这是一种方法:
bool isfup = true;
while(pop(stack, &ins) && isfup = ins->state == FUP)
{
// continue removing elements from stack
}
if(isfup == false)
push(stack, ins);
我是这样做的:
while(pop(stack, &ins) && (ins->state == FUP || (push(stack, ins) && false)));
// while( A && ( B || ( C && false ) ) );
我的问题是,我应该停止编写这种风格的代码并保持清晰吗?还是我应该保留它?