Saya lebih suka menggunakan loop sementara , tetapi ekspresi nol memungkinkan Anda menulis ini:
for (;;) { thread.run(); }
Namun, pernyataan nol memungkinkan Anda menulis ini:
while(true);
{
thread.run();
}
Tujuan utamanya adalah membuang-buang waktu programmer pemeliharaan yang buruk yang datang setelah Anda dan bertanya-tanya mengapa utas tidak berjalan. Pernyataan harus mengikuti beberapa saat. Seorang diri; adalah sebuah pernyataan. Jadi blok pernyataan ini sebenarnya bukan bagian dari loop.
Itu tidak berarti tidak ada gunanya. Mereka jarang. Mereka biasanya terlihat seperti ini:
{
;
}
Karena dengan cara ini sepertinya Anda bermaksud melakukan itu (bahkan ini terkadang tidak cukup).
Dalam perakitan pernyataan nol ini disebut NOP . Dalam Python disebut pass . Dalam java (dan anak-anak lain dari c) itu adalah titik koma seperti yang Anda katakan, atau bahkan menyatakan benar;
Saya tahu beberapa kegunaan:
Semantik .
Ada perbedaan antara ruang kosong dan meletakkan nol di bawah sebagai jawaban. Jelas dikatakan, tidak, saya tidak lupa untuk meletakkan sesuatu di sini. Tidak ada yang dimaksudkan sebagai apa-apa. Tidak ada yang eksplisit. Ruang ini sengaja dikosongkan. Ini adalah bagaimana kami mendapatkan N / A untuk dikompilasi.
Pola nol
Bayangkan sebuah mesin pemberi sinyal cahaya yang rumit dan mahal yang berulang kali mengambil bola lampu berwarna dari sabuk konveyor, memasukkannya ke dalam soket, menyalakannya, melepasnya, dan mengambil yang berikutnya. Anda dapat mengontrol apa yang ditandai oleh warna lampu yang Anda pasang di sabuk. Hebat, sekarang akhirnya bekerja dengan sempurna, atasan Anda ingin Anda menciptakan cara untuk mengontrol waktu sinyal-sinyal ini. Dia ingin menambahkan celah di antara pesan-pesan. Anda ingat dengan ngeri bahwa banyak bagian peduli tentang waktu sinyal-sinyal ini dan betapa menyebalkannya untuk menyinkronkannya. Bagaimana Anda akan mengendalikan waktu tanpa ini membuat Anda bekerja selama akhir pekan? Anda melihat ke tempat sampah yang terbakar dan mendapatkan ide yang cemerlang.
Terkadang Anda ingin menggunakan polimorfisme untuk mematikan sesuatu tanpa merusak apa pun.
Debugging
Ketika Anda menetapkan breakpoint, Anda perlu ada tempat untuk breakpoint. Sekarang yakin beberapa debugger akan membiarkan Anda mengaturnya pada kurung kurawal penutupan tetapi jika mereka tidak senang bahasanya memungkinkan Anda memaksa ada tempat untuk meletakkan satu bahkan jika tempat itu tidak melakukan apa-apa.
Bukan benar-benar java tetapi ada juga:
Mengotak-atik biner
Instruksi Assemblies NOP memungkinkan mengutak-atik file biner yang dapat dieksekusi. Tapi kompiler java modern mengoptimalkan begitu jauh saya tidak yakin titik koma tidak hanya pergi poof. Tetapi di masa lalu kita juga menggunakan titik-titik kosong ini di executable untuk mengontrol waktu atau memungkinkan kita untuk menyerah. Tanpa NOP akan ada instruksi yang sebenarnya di sana, jadi jika Anda ingin menghubungkan Anda harus menyalin petunjuk itu di tempat lain untuk memberikan ruang bagi kait. Ini berfungsi dengan baik dalam bahasa c dari mana Java mendapatkan banyak sintaksisnya. Tapi saya tidak berpikir pengait ini banyak terjadi di Jawa. Kami menggunakan Pemrograman Berorientasi Aspek untuk melakukan itu.