CodeGym /Blog Java /rawak /Pengendali angka di Jawa
John Squirrels
Tahap
San Francisco

Pengendali angka di Jawa

Diterbitkan dalam kumpulan
Hai! Hari ini kita akan mempertimbangkan topik yang sangat penting, iaitu, operator berangka dalam Java .
Pengendali angka dalam Java - 1
Dalam pengaturcaraan, nombor ada di mana-mana. Jika anda mendalami dan mengingati sekolah menengah, anda mungkin ingat bahawa komputer mewakili semua maklumat dalam format berangka: gabungan sifar dan satu, juga dikenali sebagai kod binari.
Pengendali angka dalam Java - 2
Terdapat banyak operator berangka dalam pengaturcaraan, jadi kami akan menggunakan contoh untuk meneroka yang paling penting daripadanya :) Mari kita mulakan dengan yang paling mudah: operator aritmetik . +Ini ialah operator tambah ( ), tolak ( -), darab ( *), dan bahagi ( ) yang terkenal /.

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       System.out.println(x+y);
       System.out.println(x-y);
       System.out.println(x*y);
       System.out.println(x/y);
   }
}
Output konsol: 1032 966 32967 30 Anda telah pun menggunakan semua ini. Pada kumpulan ini, anda boleh menambah pada baki atau %pengendali modulo ().

public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
Output konsol: 1 Dalam contoh ini, kami membahagikan 33 dengan 2. Ini menghasilkan 16, dengan tambahan "ekor" (satu) yang tidak boleh dibahagikan dengan 2. "ekor" ini adalah hasil daripada operasi "baki daripada pembahagian". Java juga melaksanakan operator perbandingan/hubungan (sama seperti dalam matematik). Mereka mungkin biasa kepada anda dari sekolah, juga:
  • sama dengan ( ==)
  • lebih besar daripada ( >)
  • kurang daripada ( <)
  • lebih besar daripada atau sama dengan ( >=)
  • kurang daripada atau sama dengan ( <=)
  • tidak sama ( !=)
Di sini anda harus memberi perhatian kepada satu perkara penting yang menyebabkan ramai pemula membuat kesilapan. Pengendali "sama" ditulis ==, bukan =. Di Java, satu =ialah operator penugasan , yang digunakan apabila pembolehubah diberikan nombor, rentetan atau nilai pembolehubah lain.
Operator berangka dalam Java - 3

public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// We expect false to be displayed
   }
}
Output konsol: 999 Oops! Ini jelas bukan keputusan yang kami jangkakan. Ia adalah jenis data yang sama sekali berbeza: kami menjangkakan untuk melihat boolean , tetapi kami mendapat nombor. Semuanya kerana kami menggunakan operator tugasan dalam kurungan dan bukannya perbandingan . x=y Nilai y(999) telah diberikan kepada pembolehubah x, dan kemudian kami memaparkan nilai x. Inilah cara yang betul untuk melakukannya:

public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
Output konsol: false Sekarang kami telah membandingkan kedua-dua nombor dengan betul! :) Berikut ialah satu lagi ciri pengendali tugasan ( =): ia boleh "dirantai" bersama-sama:

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;
       int z = 256;

       x = y = z;
       System.out.println(x);
   }
}
Output konsol: 256 Ingat tugasan adalah dari kanan ke kiri . Ungkapan ini ( x = y = z) akan dilaksanakan dalam langkah-langkah:
  • y = z, itu dia,y = 256
  • x = y, itu dia,x = 256

pengendali unary.

Mereka dipanggil " unary " daripada perkataan " uno ", yang bermaksud " satu ". Mereka mendapat nama ini kerana, tidak seperti pengendali sebelumnya, mereka bertindak pada satu nombor, bukan beberapa. Ini termasuk:
  • Unary tolak. Ia membalikkan tanda nombor itu.


public class Main {

   public static void main(String[] args) {

       int x = 999;

       // Change the sign for the first time
       x = -x;
       System.out.println(x);

       // Change the sign for the second time
       x= -x;
       System.out.println(x);
   }
}
Output konsol: -999 999 Kami menggunakan operator tolak unari dua kali. Akibatnya, nombor kami pertama kali negatif, dan kemudian menjadi positif semula!
  • Kenaikan (++) dan penurunan (--)
Operator ++menambah nombor dengan satu, dan --operator mengurangkan nombor dengan jumlah yang sama.

public class Main {

   public static void main(String[] args) {

       int x = 999;
       x++;
       System.out.println(x);

       x--;
       System.out.println(x);
   }
}
Output konsol: 1000 999 Notasi ini mungkin biasa kepada anda jika anda pernah mendengar tentang bahasa C++. Penciptanya menggunakan nama menarik ini untuk menyampaikan idea bahawa "C++ ialah lanjutan bahasa C" Versi Notepad yang dipertingkatkan popular dipanggil Notepad++ Berikut adalah perkara penting. Terdapat dua jenis pengendali kenaikan dan pengurangan: postfix dan prefix . x++- postfix ++x- prefix Apakah perbezaan asas antara meletakkan tambah/tolak sebelum atau selepas nombor? Kita akan lihat dalam contoh berikut:

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}

Output konsol: 999 Ada yang tidak kena! Kami ingin menambah xsebanyak 1 dan memberikan nilai baharu kepada pembolehubah y. Dalam erti kata lain, y sepatutnya 1000. Tetapi sebaliknya kita mendapat sesuatu yang lain: 999. Nampaknya x tidak dinaikkan dan pengendali kenaikan tidak berfungsi? Tetapi ia berjaya. Untuk meyakinkan diri sendiri, cuba paparkan xpada penghujungnya :)

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
       System.out.println(x);
   }
}
Output konsol: 999 1000 Sebenarnya, inilah sebabnya operasi ini dipanggil postfix: ia dilakukan selepas ungkapan utama. Ini bermakna, dalam kes kami: int y = x++; y = xdilakukan terlebih dahulu (dan pembolehubah yakan dimulakan kepada nilai x), dan hanya selepas itu akan x++dilaksanakan Bagaimana jika ini bukan tingkah laku yang kita mahukan? Kemudian kita perlu menggunakan notasi awalan :

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = ++x;
       System.out.println(y);
   }
}
Dalam kes ini, ++xdiproses terlebih dahulu dan hanya selepas itu y = x; dilaksanakan. Anda harus menyerahkan perbezaan ini kepada ingatan dengan segera untuk mengelakkan kesilapan dalam program sebenar di mana menggunakan postfix sebaliknya boleh mengubah segala-galanya :)

Pengendali kompaun

Di samping itu, di Jawa terdapat apa yang dipanggil pengendali kompaun. Mereka menggabungkan dua pengendali:
  • Tugasan
  • Operator aritmetik
Ini termasuk:
  • +=
  • -=
  • *=
  • /=
  • %=
Mari kita pertimbangkan contoh:

public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = 33;

       x += y;
       System.out.println(x);
   }
}
Output konsol: 1032 x += y bermakna x = x + y. Kedua-dua simbol digunakan secara berturut-turut untuk kepentingan ringkas. Gabungan -=, *=, /=dan %=berfungsi dengan cara yang serupa.

Pengendali logik

Selain operator berangka, Java juga mempunyai operasi yang melibatkan nilai boolean ( true dan false ). Operasi ini dilakukan menggunakan operator logik
  • !- logik TIDAK . Ia membalikkan nilai boolean

public class Main {

   public static void main(String[] args) {

       boolean x = true;
       System.out.println(!x);
   }
}
Output konsol: palsu
  • &&- logik DAN . Ia kembali benar hanya jika kedua-dua operan adalah benar.

public class Main {

   public static void main(String[] args) {

       System.out.println(100 > 10 && 100 > 200);
       System.out.println(100 > 50 && 100 >= 100);
   }
}
Output konsol: false true Hasil operasi pertama adalah palsu, kerana salah satu operan adalah palsu, iaitu 100 > 200. Untuk mengembalikan benar, &&pengendali memerlukan kedua-dua operan adalah benar (seperti yang berlaku dalam baris kedua).
  • ||- logik ATAU . Ia kembali benar apabila sekurang-kurangnya satu daripada operan adalah benar.
Apabila kami menggunakan operator ini, contoh kami yang terdahulu menghasilkan hasil yang berbeza:

public class Main {

   public static void main(String[] args) {

       System.out.println(100 > 10 || 100 > 200);
   }
}
Output konsol: benar Ungkapan 100 > 200masih palsu, tetapi untuk pengendali OR ia adalah mencukupi sepenuhnya bahawa bahagian pertama ( 100 > 10) adalah benar.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION