問題タブ [jump-table]

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 投票する
4 に答える
2447 参照

java - Javaの関数配列?

多分私はCで多くを考えていますが、Javaでこれを適切に解決する方法がわかりません。次のような文字列を送信するサーバーからの応答を受け取ります。

クライアントはその文字列を受け取り、コマンドを抽出します。ここで、コマンドの処理方法を知っている関数を呼び出したいと思います。C 側では、解決策は明らかです。コマンド名と関連する関数ポイントを含む配列を実装したので、配列を単純にループして関数を呼び出すことができます。

Javaでもこれを行う方法はありますか?名前に基づいて関数を呼び出すことができるかどうかわかりません。したがって、現在、次のオプションが表示されます。

  1. 一連のことを行うif(command.euqals(COMMAND)
  2. コマンドごとに、配列に格納できる個別のオブジェクトを作成できます (非常に面倒です)。
  3. リフレクションを使用して、関数名とコマンド名のマップを作成できるようにします。

他のオプションはありますか?

if ステートメントは最適な IMO ではありませんが、少なくともコンパイラ エラーと型チェックを可能にします。リフレクションを使用すると、より簡単にループして拡張できるため、少なくともより洗練されていますが、もちろん、名前を間違えると実行時エラーしか表示されないことを意味します。

0 投票する
4 に答える
1820 参照

java - Java でのジャンプ テーブルの実装

この単純な電卓プログラムの switch/case ステートメントをジャンプ テーブルにするにはどうすればよいですか。

正直なところ、ジャンプ テーブルが何であるかは正確にはわかりません (オンラインで説明を見つけることができませんでした)。そのため、switch/case ステートメントとの違いはわかりません。

補足: このコードは整数のみを処理するため、5/3 を割ると 1 になります。浮動小数点数/倍精度数を取るように簡単に変更するにはどうすればよいですか。

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

c - ジャンプ台 - 組立品 8086

私はこのようなスイッチケースを作ろうとしました:

ブランチ テーブル/ジャンプ テーブルを含むアセンブリ 8086 の場合:

PRINTN は C の printf のようなものです。

コードが機能せず、その理由がわかりません...

私が間違っていることは何ですか?

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

assembly - ジャンプ台のフォーマット

ジャンプ テーブルに関するコースの例を読んでいます。彼らは呼ぶgdb x/8g 0x123456

結果の出力は次のようになります。

ジャンプテーブルはアドレスを実行するコードのアドレスにマップすると思いました。では、なぜ 3 つの列があるのでしょうか (2 であるべきではありませんか?)。

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

c - C プログラミングにおけるジャンプ/分岐テーブル

次のコードで親切に助けてください

問題は、コードがリンク エラーの未解決のシンボル void __cdecl Jmp_Handler_HELLO(void) でコンパイルに失敗することですが、メイン関数のコードの最初の行が削除されると、コードは正常にコンパイルされます。親切に助けて

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

loops - MASM アセンブリ、ループの作成

私が達成しようとしていること:一度に1つずつ読み取り、その番号を処理して0かどうかを確認し、0の場合はプログラムを終了し、10以上または-10未満の場合は「拒否されました. " jump ステートメントを作成するのに多くの問題があります。ループが 0 まで数値を処理し続けるようにするにはどうすればよいですか? 「有効な」番号を入力しても、「拒否されました」というメッセージが出力されますが、プログラムは終了します。比較の後に複数の jump ステートメントを持つことはできないのでしょうか?