Javaのswitch文は複素数を扱うことができますか?

Dec 30, 2025

ご伝言

ちょっと、そこ!スイッチのサプライヤーとして、私はスイッチに関連するすべてのことに深く関わっています。しかし今日は、いつもの産業用スイッチの話から少し回り道をして、Java プログラミングの質問に飛び込みます。Java の switch ステートメントは複素数を処理できますか?

まず最初に、Java の switch ステートメントとは何かについて簡単に復習しましょう。 switch ステートメントは、式の値に基づいてコードのさまざまな部分に実行をディスパッチする簡単な方法を提供する多方向分岐ステートメントです。これは、変数に複数の値があり、その値に応じて異なるアクションを実行したい場合に便利なツールです。

整数を使用した簡単な例を次に示します。

int num = 2; switch (num) { case 1: System.out.println("数値は 1");壊す;ケース 2: System.out.println("数値は 2");壊す;デフォルト: System.out.println("その数値は 1 でも 2 でもありません"); }

Java では、switch ステートメントが処理できる型はかなり制限されています。 Java 17 以降、switch ステートメントは次の型を処理できます。バイト短い文字整数、対応するラッパー クラス (バイト短いキャラクター整数)、列挙型タイプ、および私たちの(推論された型が前述の型のいずれかの場合)。

さて、複素数について話しましょう。複素数は次の形式の数です。ア + ビ、 どこあるそしてbは実数であり、はプロパティの虚数単位ですi²=-1。 Java には、整数や浮動小数点数のような組み込みの複素数型はありません。

AZM161SK-12 12RKA-024 Safety Switch151166285 Safety Switch

Java で複素数を表現したい場合は、通常、独自のクラスを作成します。複素数クラスの簡単な例を次に示します。

クラス Complex { private double real;プライベート二重画像。 public Complex(double real, double imag) { this.real = real; this.imag = 画像; public double getReal() { 実数を返します。 public double getImag() { 画像を返します。 } }

複素数に switch ステートメントを使用する場合の大きな問題は、switch ステートメントでは、値が非常に特殊な方法で等価性を使用して比較できる型である必要があることです。 switch ステートメントを使用する場合、Java は値を比較する非常に効率的な方法を使用し、多くの場合、プリミティブ型のハッシュや単純な等価性チェックに依存します。

複素数はこの型にはまりません。 2 つの複素数が等しいかどうかを比較することは、2 つの整数を比較するほど単純ではありません。 2 つの複素数が等しいかどうかを確認するには、それらの実数部と虚数部の両方が等しいかどうかを確認する必要があります。また、Java の switch ステートメントは、この種のカスタム等価性チェックをサポートしていません。

switch ステートメントを使用しようとするとします。複雑なクラス:

複合体 c = 新しい複合体(1, 2); // これではコンパイルできません! switch (c) { case new Complex(1, 2): System.out.println("複素数は 1 + 2i");壊す;デフォルト: System.out.println("それは別の複素数です"); }

このコードはコンパイルされません。複雑なclass は switch ステートメントが処理できる型の 1 つではありません。つまり、Java の switch ステートメントは複素数を直接処理できません。

でも心配しないでください。同様の機能を実現する方法は他にもあります。使用できますもし - それ以外の場合発言。を使用して上記の例を書き直す方法は次のとおりです。もし - それ以外の場合:

複合体 c = 新しい複合体(1, 2); if (c.getReal() == 1 && c.getImag() == 2) { System.out.println("複素数は 1 + 2i"); } else { System.out.println("違う複素数です"); }

さて、スイッチサプライヤーとしての日常の仕事に戻りましょう。当社は、さまざまな産業用途向けに高品質のスイッチを幅広く提供しています。たとえば、D4A - 4501N D4A - 4510N リミットスイッチ。これらのリミット スイッチは信頼性と精度で知られており、正確な位置検出が重要な用途に最適です。

私たちのカタログにあるもう 1 つの優れた製品は、504222 安全スイッチ。産業環境では安全性が常に最優先事項であり、このスイッチは機器と従業員の安全を確保するように設計されています。

より高度な安全ソリューションをお探しの場合は、151166285 AZM161SK - 12/12RKA - 024 安全スイッチ。最も要求の厳しい安全要件を満たすための強化された機能を提供します。

小規模プロジェクトであろうと、大規模な産業運営であろうと、スイッチの市場に興味があるのであれば、ぜひご相談ください。当社の専門家チームは、お客様の特定のニーズに適したスイッチを見つけるお手伝いをいたします。ご連絡いただければ、スイッチの調達をどのようにサポートできるかについて話し合いを開始いたします。

参考文献

  • Java言語仕様
  • Oracle Java ドキュメント

お問い合わせを送る