問題タブ [control-flow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
698 参照

php - PHPと制御フローをデバッグしますか?

私は独学なので、従来のWeb開発についてはよくわかりませんが、完全なソーシャルネットワーキングWebサイトを作成しましたが、デバッグ方法がわかりません。私のウェブサイトにはいくつかの問題があり、私は周りのデバッグのことを学ぶ必要があります/

まず、WAMPにXdebugをインストールする方法の説明が必要です(phpDesignerを使用しているため)。新しいエラーが発生するたびに、Web上のチュートリアルを使用して多くのことを試しました。また、これを/ ext /ディレクトリに配置し、WAMPPHPExtensionsメニューからアクティブ化してみました。動作しません!

ですから、誰かがXdebugでPHPDesignerを使用している場合(付属のパッケージではなく、WAMPにインストールしてください)、私を助けてください。本当に感謝しています。ところでPHPのバージョンは5.3.0です

次のことはこれが私のウェブサイトの制御フローがどのようになっているのかです:-

この制御フローはデバッグに適していますか?私は実際のMVCの概念を本当に理解できないので、このようなものを作成しました。

0 投票する
7 に答える
166577 参照

sql-server - SQL Server 2000: ストアド プロシージャを終了するには?

ストアド プロシージャの途中で終了するにはどうすればよいですか?

早期に (デバッグ中に) 救済したいストアド プロシージャがあります。RETURNとを呼び出してみましたがRAISERROR、sp は引き続き実行されます。

さらに下でエラーが発生したため、実行し続けていることがわかります。印刷物が表示されません。ストアド プロシージャの大部分をコメント アウトすると、次のようになります。

その後、エラーが発生せず、結果が表示されます。

問題は、SQL Server のストアド プロシージャから抜け出すにはどうすればよいかということです。

0 投票する
2 に答える
15253 参照

asp.net-mvc - MVCでの実行フロー

私はMVCを詳細に学習しようとしていますが、内部で正確な機能フローとは何か、つまり、どの関数(重要な関数)が呼び出され、アプリケーションの起動時にどのような機能が実行され、コントローラーのアクションとは別にどの関数が呼び出されるのか疑問に思っています。先に進むにつれて、アプリケーションに書き込みます。

0 投票する
13 に答える
402670 参照

python - if句を終了する方法

if条項を途中で終了するためのどのような方法がありますか?

breakコードを書いているときに、句の中にステートメントを入れたい場合がありますがif、それらはループにのみ使用できることを覚えておいてください。

例として次のコードを取り上げましょう。

これを行う1つの方法を考えることができます。ネストされたifステートメント内で終了ケースが発生すると仮定して、残りのコードを大きなelseブロックでラップします。例:

これに伴う問題は、出口の場所が多いほど、コードのネスト/インデントが増えることです。

ifまたは、句をできるだけ小さくし、出口を必要としないようにコードを作成することもできます。

誰かがif条項を終了するための良い/より良い方法を知っていますか?

関連するelse-if句とelse句がある場合、終了するとそれらがスキップされると思います。

0 投票する
1 に答える
553 参照

ajax - XmlHttpRequest でフローを制御しますか?

XmlHttpRequest は、コールバックを通じて機能します。では、どうすれば値を返すことができますか? グローバル変数を設定しようとしましたが、うまくいかないようです。

getUserInfo()コールバックのため、結果を返すことができません:

コールバック:

に応答を返すにはどうすればよいloadUsernameInfo()ですか?

0 投票する
8 に答える
539 参照

c - gotoなしでこれを(きれいに)書き直すにはどうすればよいですか?

gotoなしでこれをきれいに行うにはどうすればよいですか?

休憩も使わないほうがいいです。さらに、他の処理を行う前に数回 (adv 40) ループすることが予想されるため、読みやすさだけを考えても、mostOfTheWork 部分は可能な限り高い位置にある可能性が高くなります。前もって感謝します。

編集: これは、コンパイラ オプティマイザーがブレークでうまく機能しないという誤解の下で投稿されました。これは、一般的には最初はばかげていますが、(パフォーマンスの) 実験を通じて自分自身が間違っていることを証明しました。一方、ご回答ありがとうございます。それらは、さまざまなスタイルに関する興味深い読み物でした。

0 投票する
3 に答える
1177 参照

java - Java-非ブロッキング呼び出しの処理

私のアプリケーションでは、サードパーティのAPIを使用しています。これは、すぐに戻るノンブロッキングメソッドです。このメソッドを呼び出さなければならない要素のコレクションがあります。

今、私の問題は、すべてのメソッドの実行が完了するまで方法を見つけて、次の操作を実行する必要があることです。どうすればこれを処理できますか?サードパーティのAPIを変更できません。

要するにそれはこのように見えます

0 投票する
3 に答える
27527 参照

c - 次の手順の制御フロー グラフと循環的複雑度

このコードの循環的複雑度を見つけて、いくつかのホワイト ボックス テスト ケースとブラック ボックス テスト ケースを提案する必要があります。しかし、コードの CFG を作成するのに問題があります。

テストケースについても助けていただければ幸いです。

0 投票する
3 に答える
199 参照

c++ - 例外を使用せずに式の途中から抜ける

解決済み:次のような最小限のラッパーのみを必要とする、 setjmp()/を使用したクリーンな方法を見つけました。longjmp()

これによりjump()、条件式で使用できます。だから今コード:

正しく翻訳される:

呼び出し元の関数の呼び出しポイントに戻る場所callerです。jmp_buf例外よりも実装定義がはるかに少ない程度まで、クリーンでシンプルで効率的です。ご協力ありがとうございました!


式の途中でフロー制御構造の使用をエミュレートする方法はありますか? カンマ区切りの式x, yで、 forが ?yを引き起こす可能性はありreturnますか?

編集:私は関数型言語にかなりたもののコンパイラに取り組んでおり、ターゲット言語は C++ です。すべてがソース言語の表現であり、宛先言語への最も健全で単純な翻訳は、可能な限り多くの表現を残します。基本的に、ターゲット言語のセミコロンは C++ コンマになります。言語内のフロー制御構造は、これまでのところ問題を示していません。それだけreturnです。コンマで区切られた式を途中で終了する方法が必要なだけで、この状況で過度のオーバーヘッドがないことを誰かが私に示すことができない限り、例外を使用したくない.

もちろん問題は、ほとんどのフロー制御構造が C++ の正当な式ではないことです。これまでに見つけた唯一の解決策は、次のようなものです。

returnステートメントは常にそこにあり (Returnコンストラクトに到達しない場合)、式で結果が使用されていることをコンパイラーに黙らせるために、ステートメントthrowをラップする必要があります。?:void

この場合、特定のオーバーヘッドが発生しないことが示されない限り、フロー制御に例外を使用することは本当に避けたいと思います。例外をスローすると、巻き戻しや何かが発生しますか? このコードは、妥当な効率で実行する必要があります。に相当する関数レベルが必要なだけですexit()

0 投票する
2 に答える
5031 参照

algorithm - 最大スタック深度の決定

Push、Pop、Jump、If の操作を伴うスタックベースのおもちゃの言語があるとします。

プログラムがあり、その入力はおもちゃの言語です。たとえば、シーケンスを取得します

その場合、最大スタックは 2 になります。より複雑な例では、ブランチが使用されます。

この場合、最大スタックは 3 になります。ただし、実際にはスタック アンダーフロー エラーが発生するため、この場合のように上から下に移動して最大スタックを取得することはできません。

CFG を使用すると、グラフを作成して、基本ブロックの可能なすべてのパスをたどることができます。ただし、パスの数は n 個の頂点で急速に増加する可能性があるため、(n-1) になります。可能なパス。

私の現在のアプローチは、グラフをできるだけ単純化し、可能なパスを少なくすることです。これは機能しますが、私はそれが醜いと思います。この問題を攻撃するためのより良い (読む: より速い) 方法はありますか? アルゴリズムが生成するスタック深度が最適でなくても問題ありません。正しいスタック サイズが m の場合、私の唯一の制約は、結果 n が n >= m であることです。ここで良い結果を生み出す貪欲なアルゴリズムが利用可能でしょうか?

更新:サイクルと、すべての制御フロー マージのスタック深度が同じであるという不変条件を認識しています。問題を説明するために、簡単なおもちゃのような言葉を書き留めようと思いました。基本的に、私は決定論的なスタックベースの言語 (JVM バイトコード) を使用しているため、各操作には既知のスタックデルタがあります。

私はこの問題に対して、良い結果 (単純化された cfg) を生成する実用的な解決策を持っていることに注意してください。