pengendali Java


Salah satu kegunaan komputer yang paling asas ialah untuk melaksanakan operasi matematik Sebagai bahasa komputer, Java juga menyediakan set pengendali yang kaya untuk memanipulasi pembolehubah. Kami boleh membahagikan pengendali kepada kumpulan berikut:

  • Pengendali aritmetik

  • Pengendali perhubungan

  • Operator bit

  • Pengendali logik

  • Pengendali tugasan

  • Operator Lain

Operator Aritmetik

Operator aritmetik digunakan dalam ungkapan matematik dan ia berfungsi dengan cara yang sama seperti dalam matematik. Jadual berikut menyenaraikan semua operator aritmetik.

Contoh dalam jadual mengandaikan bahawa nilai pembolehubah integer A ialah 10 dan nilai pembolehubah B ialah 20:

Operator                 Penerangan Contoh
+               Penambahan - nilai pada kedua-dua belah operator penambahan                   A + B sama dengan 30
-                 Tolak - operan kiri tolak operan kanan                   A – B bersamaan dengan -10
                *                 Pendaraban - Nilai pada kedua-dua belah operator pendaraban                   A * B sama dengan 200
                /                  Pembahagian - bahagikan operan kiri dengan operan kanan                     B / A sama dengan 2
                    %               Modulo - baki operan kiri dibahagikan dengan operan kanan                     B%A bersamaan dengan 0
+ +               Autokenaikan - nilai operan dinaikkan sebanyak 1                 B++ bersamaan dengan 21
                --                 Penurunan -- nilai operan dikurangkan sebanyak 1                 B - - sama dengan 19

Contoh

Atur cara contoh mudah berikut menunjukkan pengendali aritmetik. Salin dan tampal program Java berikut dan simpannya sebagai fail Test.java, kemudian susun dan jalankan atur cara:

public class Test {

  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 25;
     int d = 25;
     System.out.println("a + b = " + (a + b) );
     System.out.println("a - b = " + (a - b) );
     System.out.println("a * b = " + (a * b) );
     System.out.println("b / a = " + (b / a) );
     System.out.println("b % a = " + (b % a) );
     System.out.println("c % a = " + (c % a) );
     System.out.println("a++   = " +  (a++) );
     System.out.println("a--   = " +  (a--) );
     // 查看  d++ 与 ++d 的不同
     System.out.println("d++   = " +  (d++) );
     System.out.println("++d   = " +  (++d) );
  }
}

Hasil penyusunan dan jalankan contoh di atas adalah seperti berikut:

a + b = 30
a - b = -10
a * b = 200
b / a = 2
b % a = 0
c % a = 5
a++   = 10
a--   = 11
d++   = 25
++d   = 27

Pengendali perhubungan

Jadual berikut menunjukkan pengendali perhubungan yang disokong oleh Java

Kejadian dalam jadual Nilai pembolehubah integer A ialah 10, dan nilai pembolehubah B ialah 20 :

Operator                 Penerangan Contoh
==                 Semak sama ada nilai kedua-dua operan adalah sama, jika ya maka keadaannya adalah benar.                 (A == B) adalah palsu (tidak benar).
!=                 Semak jika nilai dua operan adalah sama, jika nilai tidak sama maka syaratnya adalah benar.                 (A != B) adalah benar.
>                 Semak jika nilai operan kiri lebih besar daripada nilai operan kanan, jika ya maka keadaan menjadi benar.                 (A> B) tidak benar.
<               Semak jika nilai operan kiri kurang daripada nilai operan kanan, jika ya maka keadaan menjadi benar.                 (A <B) adalah benar.
> =               Menyemak sama ada nilai operan kiri lebih besar daripada atau sama dengan nilai operan kanan, jika ya maka keadaan menjadi benar.                 (A> = B) adalah palsu.
<=               Menyemak sama ada nilai operan kiri adalah kurang daripada atau sama dengan nilai operan kanan, jika ya maka keadaan menjadi benar.                 (A <= B) adalah benar.

Contoh

Atur cara contoh mudah berikut menunjukkan pengendali hubungan. Salin dan tampal program Java berikut dan simpannya sebagai fail Test.java, kemudian susun dan jalankan atur cara:

public class Test {

  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     System.out.println("a == b = " + (a == b) );
     System.out.println("a != b = " + (a != b) );
     System.out.println("a > b = " + (a > b) );
     System.out.println("a < b = " + (a < b) );
     System.out.println("b >= a = " + (b >= a) );
     System.out.println("b <= a = " + (b <= a) );
  }
}

Hasil penyusunan dan larian contoh di atas adalah seperti berikut:

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

Operator Bitwise

Java mentakrifkan operator bitwise, yang digunakan untuk jenis integer (int), integer panjang (panjang), integer pendek (pendek), jenis aksara (char) dan jenis bait (bait ).

Pengendali bitwise beroperasi pada semua bit dan beroperasi bitwise. Katakan a = 60, b = 13; perwakilan format binari mereka adalah seperti berikut:

A = 0011 1100
B = 0000 1101
-----------------
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011

Jadual berikut menyenaraikan operasi asas operator bit, dengan mengandaikan bahawa nilai pembolehubah integer A ialah 60 dan nilai bagi pembolehubah B ialah 13:

Operator                 Penerangan Contoh
&               Bitwise AND operator, hasilnya ialah 1 jika dan hanya jika bit tertentu kedua-dua operan adalah bukan 0.                 (A&B), dapatkan 12, iaitu 0000 1100
                  |                 Operator bitwise ATAU, selagi bit tertentu daripada dua operan mempunyai bukan-0, hasilnya akan menjadi 1.                 (A | B) mendapat 61, iaitu 0011 1101
                  ^                     Operator XOR Bitwise, apabila bit tertentu daripada dua operan berbeza, bit hasil ialah 1.                 (A ^ B) mendapat 49, iaitu 0011 0001
                  ~               Operator pelengkap bitwise membalikkan setiap bit operan.                 (~A) mendapat -61, iaitu 1100 0011
                <<                 Operator syif kiri bitwise. Operan kiri dianjak ke kiri dengan bilangan bit yang ditentukan oleh operan kanan.                 A << 2 mendapat 240, iaitu 1111 0000
>> Operator anjakan kanan bitwise. Operan kiri dianjak bitwise ke kanan dengan bilangan bit yang ditentukan oleh operan kanan.                 A >> 2 mendapat 15 iaitu 1111
>>> Anjakan bit ke kanan operator sifar padding. Nilai operan kiri dialihkan ke kanan dengan bilangan bit yang ditentukan oleh operan kanan, dan kekosongan yang terhasil diisi dengan sifar.                 A>>>2 mendapat 15 iaitu 0000 1111

Contoh

Atur cara contoh mudah berikut menunjukkan pengendali bitwise. Salin dan tampal program Java berikut dan simpannya sebagai fail Test.java, kemudian susun dan jalankan atur cara:

public class Test {
  public static void main(String args[]) {
     int a = 60; /* 60 = 0011 1100 */ 
     int b = 13; /* 13 = 0000 1101 */
     int c = 0;
     c = a & b;       /* 12 = 0000 1100 */
     System.out.println("a & b = " + c );

     c = a | b;       /* 61 = 0011 1101 */
     System.out.println("a | b = " + c );

     c = a ^ b;       /* 49 = 0011 0001 */
     System.out.println("a ^ b = " + c );

     c = ~a;          /*-61 = 1100 0011 */
     System.out.println("~a = " + c );

     c = a << 2;     /* 240 = 1111 0000 */
     System.out.println("a << 2 = " + c );

     c = a >> 2;     /* 15 = 1111 */
     System.out.println("a >> 2  = " + c );
  
     c = a >>> 2;     /* 15 = 0000 1111 */
     System.out.println("a >>> 2 = " + c );
  }
}

Hasil penyusunan dan larian contoh di atas adalah seperti berikut:

a & b = 12
a | b = 61
a ^ b = 49
~a = -61
a << 2 = 240
a >> 15
a >>> 15

Pengendali logik

Jadual berikut menyenaraikan operasi asas pengendali logik, dengan mengandaikan bahawa pembolehubah Boolean A adalah benar dan pembolehubah B adalah palsu

< tr class="firstRow">
Operator Penerangan Contoh
                    操作符                    描述                    例子
                    &&                    称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。                    (A && B)为假。
                    | |                    称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。                    (A | | B)为真。
                    !                    称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。                    !(A && B)为真。
<🎜> &&<🎜> Dipanggil operator logik DAN. Sesuatu keadaan adalah benar jika dan hanya jika kedua-dua operan adalah benar. <🎜> (A && B) adalah palsu. <🎜><🎜><🎜> |.<🎜> Dipanggil operator OR logik. Keadaan adalah benar jika salah satu daripada dua operan adalah benar. <🎜> (A | | B) adalah benar. <🎜><🎜><🎜> ! <🎜> Dipanggil operator NOT logik. Digunakan untuk menyongsangkan keadaan logik operan. Jika keadaan adalah benar, operator NOT logik akan mendapat palsu. <🎜> ! (A && B) adalah benar. <🎜><🎜><🎜><🎜>

Contoh

Atur cara contoh mudah berikut menunjukkan pengendali logik. Salin dan tampal program Java berikut dan simpannya sebagai fail Test.java, kemudian susun dan jalankan atur cara:

public class Test {
  public static void main(String args[]) {
     boolean a = true;
     boolean b = false;
     System.out.println("a && b = " + (a&&b));
     System.out.println("a || b = " + (a||b) );
     System.out.println("!(a && b) = " + !(a && b));
  }
}

Hasil penyusunan dan larian contoh di atas adalah seperti berikut:

a && b = false
a || b = true
!(a && b) = true

Pengendali tugasan

Berikut ialah pengendali tugasan yang disokong oleh bahasa Java:

Operator                 Penerangan Contoh
=                 Operator penugasan mudah, memberikan nilai operan kanan kepada operan kiri                 C = A + B akan memberikan nilai yang diperolehi oleh A + B kepada C
+ =               Operator penugasan tambahan, yang menambah operan kiri dan operan kanan dan memberikan nilai kepada operan kiri                          C + = A bersamaan dengan C = C + A
- =                 Operator tolak dan tugasan, yang menolak operan kiri dan operan kanan serta memberikan nilai kepada operan kiri                           C - = A bersamaan dengan C = C -
A
                    * =               Operator pendaraban dan tugasan, yang mendarab operan kiri dan operan kanan dan memberikan nilai kepada operan kiri                          C * = A bersamaan dengan C = C * A
/ =               Operator pembahagian dan tugasan, yang membahagikan operan kiri dan operan kanan dan memberikan nilai kepada operan kiri                          C / = A bersamaan dengan C = C / A
(%)=                 Pengendali modul dan tugasan, yang memodulasi operan kiri dan kanan dan tetapkan nilai pada operan kiri                            C%= A bersamaan dengan C = C%A
<< =                 Operator penugasan syif kiri                 C << = 2 bersamaan dengan C = C << 2
>> = Operator penugasan syif kanan                 C >> = 2 bersamaan dengan C = C >> 2
&=               Bitwise DAN operator tugasan                 C&=2 bersamaan dengan C=C&2
                    ^ =                 Pengendali tugasan Bitwise XOR               C^=2 adalah bersamaan dengan C=C^2
                |. =                 Bitwise ATAU pengendali tugasan                 C |. = 2 bersamaan dengan C = C | 2

Contoh

Contoh program mudah di bawah

menunjukkan pengendali tugasan. Salin dan tampal program Java berikut dan simpannya sebagai fail Test.java, kemudian susun dan jalankan atur cara:

public class Test {
  public static void main(String args[]) {
     int a = 10;
     int b = 20;
     int c = 0;
     c = a + b;
     System.out.println("c = a + b = " + c );
     c += a ;
     System.out.println("c += a  = " + c );
     c -= a ;
     System.out.println("c -= a = " + c );
     c *= a ;
     System.out.println("c *= a = " + c );
     a = 10;
     c = 15;
     c /= a ;
     System.out.println("c /= a = " + c );
     a = 10;
     c = 15;
     c %= a ;
     System.out.println("c %= a  = " + c );
     c <<= 2 ;
     System.out.println("c <<= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= 2 = " + c );
     c >>= 2 ;
     System.out.println("c >>= a = " + c );
     c &= a ;
     System.out.println("c &= 2  = " + c );
     c ^= a ;
     System.out.println("c ^= a   = " + c );
     c |= a ;
     System.out.println("c |= a   = " + c );
  }
}

Contoh kompilasi dan hasil larian di atas adalah seperti berikut:

c = a + b = 30
c += a  = 40
c -= a = 30
c *= a = 300
c /= a = 1
c %= a  = 5
c <<= 2 = 20
c >>= 2 = 5
c >>= 2 = 1
c &= a  = 0
c ^= a   = 10
c |= a   = 10

Pengendali bersyarat ( ?:)

Pengendali bersyarat juga dikenali sebagai operator ternary. Operator ini mempunyai 3 operan dan perlu menilai nilai ungkapan Boolean. Tujuan utama pengendali ini adalah untuk memutuskan nilai yang harus diberikan kepada pembolehubah.

variable x = (expression) ? value if true : value if false

Instance

public class Test {
   public static void main(String args[]){
      int a , b;   
      a = 10;    
b = (a == 1) ? 20: 30;    
System.out.println( "Value of b is : " +  b );
      b = (a == 10) ? 20: 30;    
     System.out.println( "Value of b is : " + b );
   }
}

Contoh kompilasi dan hasil larian di atas adalah seperti berikut:

Value of b is : 30
Value of b is : 20

instanceOf operator

Operator ini digunakan untuk beroperasi contoh objek Menyemak sama ada objek adalah jenis tertentu (jenis kelas atau jenis antara muka).

Format pengendali instanceof adalah seperti berikut:

( Object reference variable ) instanceOf  (class/interface type)

Jika objek yang ditunjuk oleh pembolehubah di sebelah kiri operator ialah objek kelas atau antara muka (kelas/antara muka ) di sebelah kanan operator, maka hasilnya adalah benar.

Berikut ialah contoh:

String name = 'James';
boolean result = name instanceOf String; // 由于name是String类型,所以返回真

Pengendali ini masih mengembalikan benar jika objek yang dibandingkan serasi dengan jenis sebelah kanan.

Lihat contoh berikut:

class Vehicle {}

public class Car extends Vehicle {
   public static void main(String args[]){
      Vehicle a = new Car();
      boolean result =  a instanceof Car;
      System.out.println( result);
   }
}

Hasil kompilasi dan larian contoh di atas adalah seperti berikut:

true

Keutamaan operator Java

Apabila berbilang operasi Apabila simbol muncul dalam ungkapan, siapa didahulukan dan siapa diakhiri? Ini melibatkan isu keutamaan pengendali. Dalam ungkapan berbilang pengendali, keutamaan pengendali yang berbeza akan membawa kepada hasil akhir yang sangat berbeza.

Sebagai contoh, (1+3) + (3+2)*2, jika ungkapan ini dikira mengikut tanda tambah sebagai keutamaan tertinggi, jawapannya ialah 18, dan jika tanda darab ialah keutamaan tertinggi, jawapannya ialah 14.

Contoh lain, x = 7 + 3 * 2; di sini x mendapat 13, bukan 20, kerana operator darab mempunyai keutamaan yang lebih tinggi daripada operator tambah, jadi 3 * 2 dikira dahulu untuk mendapatkan 6, Kemudian tambah 7 lagi.

Pengendali dengan keutamaan tertinggi dalam jadual di bawah berada di bahagian atas jadual dan pengendali dengan keutamaan terendah berada di bahagian bawah jadual.

                    Perhubungan == !=               &               ^ Koma
Kategori               Operator                 Perkaitan
                      Akhiran               () [] . (pengendali titik)                 Kiri ke kanan
                    Satu dolar + + -!~               Dari kanan ke kiri
Harta berganda * /%               Kiri ke kanan
                    Ketambahan + -                 Kiri ke kanan
                    Shift                 >> >>< Kiri ke kanan
>> = << Kiri ke kanan                     Sama dengan
              Kiri ke kanan                     Bitwise DAN
              Kiri ke kanan                     Bitwise XOR
                     Kiri ke kanan
                Bitwise ATAU               |                 Kiri ke kanan
                    Logik DAN               &&               Kiri ke kanan
                    Logik ATAU               |.               Kiri ke kanan
                    Syarat                 ? :                 Dari kanan ke kiri
Tugasan               = + = - = * = / =%= >> = << Dari kanan ke kiri
              ,               Kiri ke kanan