假设我想从堆栈中弹出对象并检查它们的状态,无论是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 ) ) );
我的问题是,我是否应该停止编写这种风格的代码并明确一致?或者我应该保留它?
答案 0 :(得分:4)
使用长而清晰的方式将其放入函数中,然后在需要调用函数时快速调用该函数。毕竟,这是程序编程中函数的目的之一! : - )
答案 1 :(得分:1)
如果堆栈最初为空或变空,则您的元代码会崩溃。 另外,作为一种风格问题,请检查顶部元素,然后弹出或继续
while(!stackEmpry(stack) && (top(stack)->state==FUP)) { pop(stack); }
答案 2 :(得分:1)
任何非一次性程序都会由您或其他人阅读,而不是写入。这种编码风格需要更长的时间来编写,甚至更长时间才能读取,运行速度更快,容易出错。你想要完成什么?
在人们用纸张打印代码的过去,你可能有借口,但在这个时代,视网膜显示无处不在......