比方說,我想彈出堆棧中的對象並檢查它們的狀態,無論是否爲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)));
我的問題是,我應該停止編寫代碼這種風格,去清晰?或者我應該保留它?