Bisakah pernyataan switch di Java menangani bilangan kompleks?

Dec 30, 2025

Tinggalkan pesan

Hai! Sebagai pemasok saklar, saya sering kali mendalami segala hal yang berkaitan dengan saklar. Tapi hari ini, saya akan mengambil sedikit jalan memutar dari pembicaraan saya tentang switch industri dan menyelami pertanyaan pemrograman Java: Bisakah pernyataan switch di Java menangani bilangan kompleks?

Pertama, mari kita mengingat sekilas apa itu pernyataan switch di Java. Pernyataan switch adalah pernyataan cabang multi-arah yang menyediakan cara mudah untuk mengirimkan eksekusi ke berbagai bagian kode Anda berdasarkan nilai ekspresi. Ini adalah alat yang berguna ketika Anda memiliki beberapa kemungkinan nilai untuk suatu variabel dan Anda ingin melakukan tindakan berbeda bergantung pada nilai yang diperlukan.

Berikut ini contoh sederhana dengan bilangan bulat:

int angka = 2; switch (angka) { kasus 1: System.out.println("Angkanya 1"); merusak; kasus 2: System.out.println("Bilangannya 2"); merusak; default: System.out.println("Angkanya bukan 1 atau 2"); }

Di Java, tipe yang dapat ditangani oleh pernyataan switch sangat terbatas. Pada Java 17, pernyataan switch dapat menangani tipe berikut:byte,pendek,arang,ke dalam, kelas pembungkusnya yang sesuai (byte,Pendek,Karakter,Bilangan bulat),Rangkaian,enumjenis, dankita(bila tipe yang disimpulkan adalah salah satu tipe yang disebutkan sebelumnya).

Sekarang mari kita bicara tentang bilangan kompleks. Bilangan kompleks adalah bilangan yang bentuknyadan + bi, Di manaADanBadalah bilangan real, danSayaadalah unit imajiner dengan propertisaya²=- 1. Di Java, tidak ada tipe bilangan kompleks bawaan seperti bilangan bulat atau bilangan titik mengambang.

AZM161SK-12 12RKA-024 Safety Switch151166285 Safety Switch

Jika kita ingin merepresentasikan bilangan kompleks di Java, biasanya kita membuat kelas sendiri. Berikut contoh sederhana kelas bilangan kompleks:

kelas Kompleks { privat ganda nyata; gambar ganda pribadi; Kompleks publik(nyata ganda, gambar ganda) { ini.nyata = nyata; ini.gambar = gambar; } publik ganda getReal() { kembalikan nyata; } publik ganda getImag() { kembalikan gambar; } }

Masalah besar dalam menggunakan pernyataan switch untuk bilangan kompleks adalah bahwa pernyataan switch memerlukan nilai yang bertipe yang dapat dibandingkan menggunakan persamaan dengan cara yang sangat spesifik. Saat kita menggunakan pernyataan switch, Java menggunakan cara yang sangat efisien untuk membandingkan nilai, sering kali mengandalkan hashing atau pemeriksaan kesetaraan sederhana untuk tipe primitif.

Bilangan kompleks tidak cocok dengan cetakan ini. Membandingkan dua bilangan kompleks untuk mendapatkan persamaan tidak semudah membandingkan dua bilangan bulat. Untuk memeriksa apakah dua bilangan kompleks sama, kita perlu memeriksa apakah bagian riil dan bagian imajinernya sama. Dan pernyataan switch Java tidak mendukung pemeriksaan kesetaraan khusus semacam ini.

Katakanlah kita mencoba menggunakan pernyataan switch dengan pernyataan kitaKomplekskelas:

Kompleks c = Kompleks baru(1, 2); // Ini tidak dapat dikompilasi! switch (c) { case new Kompleks(1, 2): System.out.println("Bilangan kompleksnya adalah 1 + 2i"); merusak; default: System.out.println("Ini adalah bilangan kompleks yang berbeda"); }

Kode ini tidak dapat dikompilasi karenaKompleksclass bukanlah salah satu tipe yang dapat ditangani oleh pernyataan switch. Jadi, singkatnya, pernyataan switch di Java tidak bisa langsung menangani bilangan kompleks.

Tapi jangan khawatir! Ada cara lain untuk mencapai fungsi serupa. Kita bisa menggunakanjika - lainpernyataan. Inilah cara kita menulis ulang contoh di atas menggunakanjika - lain:

Kompleks c = Kompleks baru(1, 2); if (c.getReal() == 1 && c.getImag() == 2) { System.out.println("Bilangan kompleksnya adalah 1 + 2i"); } else { System.out.println("Bilangan kompleksnya berbeda"); }

Sekarang, kembali ke pekerjaan saya sehari - hari sebagai pemasok saklar. Kami menawarkan berbagai macam saklar berkualitas tinggi untuk berbagai aplikasi industri. Misalnya, kita punyaD4A - 4501N D4A - 4510N Sakelar Batas. Sakelar batas ini dikenal karena keandalan dan presisinya, menjadikannya ideal untuk aplikasi yang mengutamakan penginderaan posisi akurat.

Produk hebat lainnya di katalog kami adalahSakelar Pengaman 504222. Keselamatan selalu menjadi prioritas utama dalam lingkungan industri, dan sakelar ini dirancang untuk menjamin keselamatan peralatan dan personel Anda.

Dan jika Anda mencari solusi keamanan yang lebih canggih, lihat151166285 AZM161SK - 12/12RKA - 024 Sakelar Pengaman. Ia menawarkan fitur dan fungsionalitas yang ditingkatkan untuk memenuhi persyaratan keselamatan yang paling menuntut.

Jika Anda sedang mencari sakelar, baik untuk proyek kecil atau operasi industri skala besar, kami ingin berbicara dengan Anda. Tim ahli kami dapat membantu Anda menemukan saklar yang tepat untuk kebutuhan spesifik Anda. Hubungi saja kami, dan kami akan memulai pembicaraan tentang bagaimana kami dapat membantu Anda dalam pengadaan saklar Anda.

Referensi

  • Spesifikasi Bahasa Java
  • Dokumentasi Oracle Java

Kirim permintaan