問題タブ [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.
mysql - 最初の SELECT が空のセットを返した場合の別の SELECT
これは私のテーブルです:
id_1
「x」の行がない場合、0 の行を返す必要がある SQL が必要ですid_1
。たとえば、選択id_1
= 2 の場合、select * where
id_1が返され= 0
ます。
これは 1 つのステートメントで実行できますか? IF EXISTS または CASE を使用した場合、ほとんど運がありませんでした。構文...
Thanks, as always
c++ - C++ でさまざまな形式の「はい」と「いいえ」に対して複数のタイプの入力を許可する
if else ステートメントを使用してプログラムのフローを制御するために YES や NO などのユーザー入力を取得する方法について質問を投稿しました。回答を得て、これを機能させることに一歩近づきましたが、別の問題が発生しました。私は本当に複数の入力を許可する必要があります。たとえば、これは私がしようとしているものです:
Kiril Kirov は、役立つ次のコードを投稿しました。
しかし、私はそれを機能させることができず、ロジャー・パテがこれを提案しました:
ただし、その複雑さは私の理解をはるかに超えているため、これを試したことはありません。私は、初心者のプログラマーが理解できる解決策を望んでいました。
EDIT:私はこの変更を行いましたが、以前よりもうまく機能しません。間違ったケースを指定すると、else(エラー)になり、単語を追加する場所がありません(NO N NO NOなど):
c# - C# コードの制御フロー グラフ ジェネレーター
ビジュアルスタジオにこのようなものがある場合、C#コードを取り、コードの制御フローグラフを生成するツールが必要です..........私に指摘してくださいありがとう
assembly - objdump 使用時のレジスタ値の決定
そのため、objdump ユーティリティを使用して、アセンブリから制御フロー グラフを作成しようとしていますが、問題が発生しています。基本的に、分岐が発生し、ターゲット アドレスが相対である場合はいつでも、次の基本ブロックの開始位置を知る方法がわかりません。よくわからないので、例を追加します。私のプログラムが objdump 出力を調べていて、最初の基本ブロックの開始アドレスを記録したとします。次に、相対アドレッシングを使用してジャンプ先の適切なアドレスを指すジャンプ コマンドをヒットします。最初の基本ブロックの終了がすぐそこにあることはわかっていますが、次の基本ブロックの開始の正しいアドレスを取得するにはどうすればよいですか? 誰でも提供できるガイダンスは大歓迎です。私はせいぜいx86の初心者であり、この1週間、これに頭を悩ませてきました。
language-agnostic - コンストラクトは..while(false)がより良い制御フローに貢献しますか?
私は最近このコードに出くわしました:
それを書いたプログラマーは、の行に沿ってコメントを書きました"cleaner control flow"
。
私の意見では、元のコードを別のコードにリファクタリングすると、見栄えが良くなる可能性があります。しかし、この声明には真実がありますか?この構成は良いですか?
perl - do ループの「最後」の代替
for の perl マニュアルlast
( http://perldoc.perl.org/functions/last.html ) によると、ループlast
から抜け出すために使用することはできdo {}
ませんが、代替手段については言及されていません。私が維持しているスクリプトの構造は次のとおりです。
彼はループの最後に行きたいと思っていると確信していますが、実際には現在のサブルーチンを終了しているのでlast
、誰かが推奨できるより良い方法がある場合は、ループ全体を変更するかリファクタリングする必要があります。
ssis - SSIS 制御フローとデータ フロー
SSIS パッケージの制御フローの目的を完全には理解していません。私が作成したすべてのパッケージで、フローを制御するデータ フロー コンポーネントを追加するだけで、残りのロジックはデータ フロー内に配置されます。
より複雑な制御フローの例 (例: Excel ファイルの行を反復する foreach ループ コンテナー) を見てきましたが、データ フローにも実装できない例を探しています。データ フロー内で Excel ファイルへの接続を簡単に作成できます。
制御フローにロジックを実装する必要がある (または実装する必要がある) 場合と、データ フローを使用してすべてを実行する場合の理解を深めようとしています。
制御フローの調査を開始するきっかけとなったのは、SSIS データ フローをリファクタリングし、並行開発をサポートしやすくするために、パッケージをより小さなパッケージに分割することです。
これらの目的で制御フローをどのように使用できるかについて、頭を悩ませようとしています。
java - Java を使用してビジター パターンを使用して AST から制御フロー グラフを作成する
JavaCCで既に生成されたAbstract-Syntax-Treeから制御フローグラフを構築するために、LEParserCfgVisitorクラスを実装する方法を理解しようとしています。すでに存在するツールがあることは知っていますが、コンパイラの最終版に備えてそれをやろうとしています。
グラフをメモリに保持するデータ構造が必要であることはわかっており、後で制御フロー分析を実行できるように、各ノードで IN、OUT、GEN、KILL などの属性を保持できるようにしたいと考えています。
私の主な問題は、分岐、ループなどの性質に応じて各ブロック間に正しいエッジを持たせるために、さまざまなブロックを一緒に接続する方法を理解していないことです。つまり、明示的なビジターの作成に役立つアルゴリズム。
これが私の空のビジターです。if、while、基本演算 (+、-、x、^、...) などの基本的な言語式で動作することがわかります。
誰か手を貸してくれませんか?
ありがとう!
c++ - C++ コードは、最適化なしで奇妙にスキップされます。理由はありますか?
これに対する答えを2日間探しましたが、成功しませんでした。私はこれまでこの問題に遭遇したことがないので、最善を尽くします。我慢してください。
1 年以上前に作成した C++ プロジェクトに戻りましたが、当時は問題なく実行されていました。先日、同じプログラムを実行しようとしていたときに、この興味深く、信じられないほど厄介な問題に遭遇しました。コードは次のようなものでした:
file.h
file.cc
定数は、この例のために拡張した 16 進表記のマクロです。これは本当にバグであることが判明しましたが、デバッガーでは発見が容易ではありませんでした。何が起こったのか:
if (id == 30000)
GDB を使用して (最適化なしで) コードをステップ実行しようとしていたとき、GDB が , に到達した後、毎回else ステートメントに直接ジャンプすることに気付きました。40000
数値は 16 進数表記の c マクロだったので、最初は a の制限を超えていることに気づきませんでしたsigned short
。これは非常に誤解を招くものであり、その解明に何時間も費やしました。とりわけ、外部ライブラリを再コンパイルし、g++ を再インストールしました。
明らかに、問題をid
修正unsigned short
しました。もう 1 つの問題は、コンパイラの問題のようです。しかし、私はまだ理解していません.コードのこれらのセクションが実行中に完全にスキップされ、最適化されていないのはなぜですか? なぜそれが各ステートメントを通過しないのでif
、本当の問題を特定できるのでしょうか? 何か案は?
本当にありがとう。これで最初の質問は大丈夫だと思います。
performance - if then else.... break と if break if break の効率
次の制御フロー オプションのいずれかをループで使用したり、他のオプションを切り替えたりする場合に、効率の優先順位はありますか?
オプション1:
オプション 2: