Dalam konten sebelumnya, saya telah belajar cara mendefinisikan dan menginisialisasi variabel. Tujuan mendefinisikan variabel adalah untuk memanipulasi data. Bahasa Java memberi kita simbol kode yang secara khusus digunakan untuk mengoperasikan data ini, secara kolektif disebut "operator".
Menurut penggunaan operator, kita dapat membaginya ke dalam kategori berikut:
Operator aritmatika
Operator penugasan
Operator pembangkangan diri dan penangguhan diri sendiri
Operator logis
Operator relasional
Operator Bit
Jangan khawatir, mereka hanya simbol yang membantu kami memproses data operasi. Berikut ini menggunakan contoh kode untuk menggambarkan penggunaan operator ini satu per satu.
1. Operator aritmatika
Operator aritmatika adalah operasi aritmatika untuk menambah, mengurangi, mengalikan, membagi, dan mengambil sisa variabel numerik:
Tambahkan: +
mengurangi:-
mengambil:*
menghapus:/
Ambil saldo: %
operator kelas publik {public static void main (string [] args) {int num1 = 100; int num2 = 20; // tambahkan system.out.println ("num1 + num2:" + (num1 + num2)); // Kurangi system.out.println ("num1 - num2:" + (num1 - num2)); // multiply system.out.println ("num1 * num2:" + (num1 * num2)); // diskon System.out.println ("num1 / num2:" + (num1 / num2)); // Dapatkan sisa System.out.println ("num1 % num2:" + (num1 % num2)); }}Hasil output:
num1 + num2: 120num1 - num2: 80num1 * num2: 2000num1 / num2: 5num1 % num2: 0
2. Operator penugasan
Seperti kebanyakan bahasa pemrograman, Java menggunakan operator '=' untuk melakukan operasi penugasan. Operasi ini memberikan hasil perhitungan di sebelah kanan (disebut RValue) ke variabel di sebelah kiri. Operator penugasan di Java meliputi:
= (num2 = num1)
+= (num2 += num1 setara num2 = num2 +num1)
-= (num2 -= num1 setara num2 = num2 -num1)
*= (num2 *= num1 setara num2 = num2 *num1)
/= (num2 /= num1 setara num2 = num2 /num1)
%= (num2 %= num1 setara num2 = num2 %num1)
operator kelas publik {public static void main (string [] args) {int num1 = 10; int num2 = 20; num2 = num1; System.out.println ("= output:"+num2); num2 += num1; System.out.println ("+= output:"+num2); num2 -= num1; System.out.println ("-= output:"+num2); num2 *= num1; System.out.println ("*= output:"+num2); num2 /= num1; System.out.println ("/= output:"+num2); num2 %= num1; System.out.println ("%= output:"+num2); }}Hasil hasil:
= Output: 10+= output: 20- = output: 10*= output: 100/= output: 10%= output: 0
3. Operator penangkapan diri dan penangguhan diri sendiri
Operator pendakian diri dan penangguhan diri hanya beroperasi pada satu variabel, dan nilai perubahan variabel.
num ++ (num setara = num+ 1) meningkat dengan sendirinya, terutama untuk variabel numerik, menambahkan 1 ke nilai variabelnya sendiri.
num -(Eqivalent num = num -1) Pengursuan diri, terutama menargetkan variabel numerik, mengurangi nilai variabel tubuh dengan 1.
operator kelas publik {public static void main (string [] args) {int num1 = 100; int num2 = 200; num1 ++; num2--; System.out.println ("num1 ++ adalah:"+num1); System.out.println ("num2-- adalah:"+num2); }}Hasil hasil:
num1 ++ adalah: 101num2-- adalah: 199
4. Operator logis
Operator logis, seperti namanya, digunakan untuk penilaian logis. Hasil operasi adalah nilai tipe boolean, yaitu, benar atau salah. Operator seragam logis memiliki
| Operator logis | Hubungan logis |
|---|---|
| && | Dan |
| ` | |
| Lai | TIDAK |
B1 && B2: Jika B1 dan B2 benar, b1 && b2 akan mengembalikan true, jika tidak salah
B1 || B2: Jika B1 dan B2 salah, salah akan dikembalikan, jika tidak benar akan dikembalikan.
Lai B1: akan mengembalikan nilai yang berlawanan dengan B1, jika B1 salah, mengembalikan true; Jika B1 benar, kembalikan salah
operator kelas publik {public static void main (string [] args) {boolean b1 = true; boolean b2 = false; System.out.println ("b1 && b2:" + (b1 && b2)); System.out.println ("B1 || B2:" + (B1 || B2)); System.out.println ("! (B1 && B2):" +! (B1 && B2)); }}Hasil output:
b1 && b2: falseb1 || b2: true! (b1 && b2): true
Sirkuit Pendek Logis:
Di Java, operator logis mendukung operasi sirkuit pendek, dan begitu nilai seluruh ekspresi dapat diekspresikan dengan jelas, kita tidak perlu menghitung sisa ekspresi. Misalnya, kita perlu menilai bahwa suatu objek tidak kosong dan bahwa nilai pengembalian metodenya tidak kosong, sehingga kita dapat membuat penilaian seperti ini:
if (objek! = null && object.somefunction ()! = null) {// lakukan sesuatu.}Jika objek kosong, objek ekspresi bagian pertama! = NULL akan mengembalikan false, maka terlepas dari hasil objek ekspresi.somefunction ()! = NULL Setelah operator &&, nilai akhir salah. Kompiler akan secara otomatis mengoptimalkan bagian operasi ini dan tidak akan menjalankan objek.somefunction ()! = NULL.
5. Operator Relasional
Digunakan untuk membandingkan ukuran dua data variabel, mengembalikan nilai boolean, yaitu, benar atau salah
Operator relasional meliputi:
| Operator relasional | hubungan |
|---|---|
| > | Lebih besar dari |
| < | Kurang dari |
| == | setara |
| ! = | Tidak sama dengan |
| > = | Lebih besar dari atau sama dengan |
| <= | Kurang dari atau sama dengan |
'==' dan '! =' Cocok untuk semua jenis nilai dan objek (mis. Variabel tipe primitif dan variabel tipe referensi).
'>', '<', '> =' dan '<=' tidak berlaku untuk nilai -nilai tipe boolean, karena mereka hanya memiliki benar atau salah, dan lebih besar dari dan kurang dari tidak memiliki signifikansi praktis.
operator kelas publik {public static void main (string [] args) {int num1 = 10; int num2 = 50; if (num1 == num2) {System.out.println ("num1 dan num2 sama"); } else {system.out.println ("num1 dan num2 tidak sama"); } if (num1! = num2) {system.out.println ("num1 dan num2 tidak sama"); } else {system.out.println ("num1 dan num2 tidak sama"); } else {system.out.println ("num1 dan num2 tidak sama"); } sama ");} if (num1> num2) {System.out.println (" num1 lebih besar dari num2 ");} else {System.out.println (" num1 tidak lebih besar dari num2 ");} if (num1> = num2) {System.out.println (" num1 lebih besar dari atau sama dengan atau sama dengan atau sama dengan atau sama dengan atau lebih besar dari atau sama dengan atau lebih besar dari atau lebih besar dari atau lebih besar Kurang dari num2 ");} if (num1 <num2) {system.out.println (" num1 kurang dari num2 ");} if (num1 <num2) {system.out.println (" num1 kurang dari num2 ");} else {System.out.println (" num1 tidak lebih dari System.out.println ("num1 kurang dari atau sama dengan num2");Hasil output:
num1 dan num2 tidak samanum1 dan num2 tidak samaNum1 tidak lebih besar dari num2num1 kurang dari num2num1 kurang dari num2num1 kurang dari atau sama dengan num2
6. Operator Bit
Objek operasi yang ditargetkan oleh operator bit adalah "bit" biner, yang dapat diterapkan pada tipe integer (int), panjang, pendek, tipe karakter (char), dan tipe byte (byte) dan jenis lainnya. Selama operasi, bit bit yang sesuai (0 atau 1) akan dilakukan dalam operasi aljabar boolean atau operasi pemindahan.
| Operator Bit | Logika Komputasi |
|---|---|
| & | Dan Operasi: Untuk bit tertentu, selama kedua operan adalah 1, hasil bit adalah 1, jika tidak 0. |
| ` | ` |
| ^ | Operasi XOR: Untuk bit tertentu, jika kedua operan tidak sama, hasil bit adalah 1, jika tidak, itu 0. |
| ~ | Non-operasi: Operator komplemen bitwise membalik setiap bit operan |
| << | Operator Shift Biner Left: Operan kiri bit-kiri digeser oleh operan kanan. |
| >> | Operator Shift Kanan Biner: Operan kiri bergeser kanan oleh operan kanan. |
| >>> | Operator pelengkap nol Biner Shift: Nilai operan kiri digeser kanan sesuai dengan jumlah bit yang ditentukan oleh operan kanan, dan bit kosong yang dihasilkan diisi dengan nol |
Deskripsi logika komputasi agak tidak jelas, dan kami dapat menggunakan contoh untuk memahami lebih jelas bagaimana operator bit melakukan perhitungan. Asumsikan bahwa jika x sama dengan 60; Y sama dengan 13; Representasi biner mereka, dan hasil operasi bit adalah sebagai berikut:
x = 0011 1100y = 0000 1101 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Perhatikan perbedaan antara >> dan >>>:
Operator shift kanan >>, jika nilai operasi positif, 0 dimasukkan dalam posisi tinggi; Jika nilainya negatif, 1 dimasukkan dalam posisi tinggi;
Bergerak ke kanan untuk mengisi operator nol >>>, masukkan 0 pada posisi tinggi terlepas dari positif atau negatif.
> Jika Anda tidak memahami operasi bit, lewati dulu. Ketika benar -benar digunakan, Anda dapat mempelajarinya lagi.
7. Prioritas Operator
Prioritas operator menentukan pengelompokan istilah dalam suatu ekspresi. Itu mempengaruhi bagaimana ekspresi dievaluasi. Operator tertentu memiliki prioritas lebih tinggi daripada operator lain.
Sebagai contoh: operator multiplikasi memiliki prioritas yang lebih tinggi daripada operator tambahan, dan ekspresi 1 + 5 * 6. Menurut prioritas operator, kompiler pertama -tama akan menghitung 5 * 6, kemudian menghitung 30 + 1, dan akhirnya mendapatkan hasil 31.
Prioritas berbagai operator adalah dari besar ke kecil:
., (), [] Monokular +(kanan ke kiri gabungan), monokular - (kanan ke kiri gabungan), ++, -, ~,!*, /,% +(Kiri ke kanan gabungan), - (Kiri ke kanan gabungan) >>, <<, >>> <, <=,> ==,! = & |^& & |
Jangan khawatir tentang daftar prioritas yang kompleks. Dalam kebanyakan kasus, ekspresi itu sendiri mudah untuk melihat prioritas. Misalnya, operasi penugasan harus memiliki prioritas terendah. Dalam kasus di mana prioritas tidak jelas, kita dapat mengubah prioritas seperti yang kita inginkan, jadi tidak perlu mengingat prioritas operator terlalu banyak.
8. Operator lain
Operator tiga arah:
Operator bersyarat di Java adalah operator terner, dan bentuknya adalah sebagai berikut:
BooleanExpression? ValueWhentrue: ValueWhenfalse
Jika nilai ekspresi boolean benar, nilai ekspresi adalah nilai valuewhentrue, jika tidak nilai ValueWhenfalse.
Misalnya, jika kita ingin menghitung nilai absolut x, kita dapat mengimplementasikannya melalui kode berikut:
if (x> = 0) {y = x;} else {y = -x;}Melalui operator ternary, Anda hanya perlu satu pernyataan y = x> = 0? x: -x; Untuk menyelesaikannya, yang lebih ringkas.
Jenis Operator Konversi:
Kami menggunakan konversi tipe dalam banyak kasus. Pada waktu yang tepat, Java akan secara otomatis mengonversi tipe data ke yang lain sesuai dengan tipe data. Misalnya, jika kami menetapkan nilai integer ke variabel float, kompiler akan mengonversi int menjadi float dan menetapkannya ke variabel.
Namun, dalam banyak kasus, Java tidak dapat menentukan apakah kita perlu melakukan konversi jenis. Pada saat ini, kita membutuhkan operator konversi tipe, yang memungkinkan kita melakukan konversi tipe secara eksplisit, seperti:
int a = 10; long b = (panjang) a; long c = (panjang) 100;
Kami dapat mengetik konversi variabel dan konstanta.
Saat melakukan konversi jenis bilangan titik mengambang, kita perlu memperhatikan masalah pemotongan. Jika kita ingin mengetik Konversi 10.9: (int) 10.9, nilainya tidak bulat 11, tetapi 10