0

FUPオブジェクトをスタックからポップして、 (上を向いている)かどうかに関係なく、その状態を確認したいとしましょう。

スタックが空になるか、インスタンスの状態が上を向いていないポイントに到達するまで、これを続けたいと思います。この場合、このインスタンスを押し戻し、ループを停止する必要があります。

これを行う1つの方法は次のとおりです。

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 ) ) );

私の質問は、この種のスタイルのコードを書くのをやめて、明確にするべきですか? または私はそれを保持する必要がありますか?

4

3 に答える 3

4

長くて明確な方法を使用して関数に入れ、呼び出す必要があるときに関数を 1 行で呼び出します。結局のところ、それが手続き型プログラミングにおける関数の目的の 1 つです。:-)

于 2012-10-06T02:23:06.260 に答える
1

スタックが最初に空であったか、空になった場合、メタコードはクラッシュします。また、スタイルの問題として、一番上の要素を調べてから、ポップまたは続行します

while(!stackEmpry(stack) && (top(stack)->state==FUP)) { pop(stack); }
于 2012-10-06T02:31:54.803 に答える
1

使い捨てではないプログラムは、あなたや他の誰かによって、書き込みよりも何倍も読み取られます。このコーディング スタイルは、書き込みに時間がかかり、読み取りにさらに時間がかかり、実行速度が遅く、エラーが発生しやすくなります。何を達成しようとしていますか?

コードを紙に印刷していた古き良き時代には、言い訳ができるかもしれませんが、この時代と時代と網膜ディスプレイはどこにでもあります...

于 2012-10-06T03:04:55.813 に答える