Mengapa hal ini tidak bisa dilakukan jika Anda mencoba mencari tahu apakah int berada di antara angka-angka:
if(10 < x < 20)
Alih-alih itu, Anda harus melakukan
if(10<x && x<20)
yang tampaknya seperti sedikit overhead.
Ini hanya sintaksisnya saja. '<' adalah operasi biner, dan kebanyakan bahasa tidak membuatnya transitif. Mereka bisa saja membuatnya seperti yang Anda katakan, tapi kemudian seseorang akan bertanya mengapa Anda tidak bisa melakukan operasi lain dalam trinary juga. "if (12 < x != 5)"?
Sintaksis selalu merupakan trade-off antara kompleksitas, ekspresifitas, dan keterbacaan. Perancang bahasa yang berbeda membuat pilihan yang berbeda. Misalnya, SQL memiliki "x ANTARA y DAN z ", di mana x, y, dan z dapat secara individual atau semuanya menjadi kolom, konstanta, atau variabel terikat. Dan saya senang menggunakannya di SQL, dan saya juga senang untuk tidak khawatir tentang mengapa hal itu tidak ada di Java.
Karena sintaksis itu tidak didefinisikan? Selain itu, x < y
dievaluasi sebagai bool, jadi apa arti bool < int
? Ini bukan benar-benar overhead; selain itu, anda bisa menulis metode utilitas jika anda benar-benar menginginkannya - isBetween(10,x,20)
- saya tidak akan melakukannya, tapi hei...
Karena operator <
(dan sebagian besar operator lainnya) adalah operator biner (mereka mengambil dua argumen), dan (true true)
` bukanlah ekspresi boolean yang valid.
Para perancang bahasa Java bisa saja merancang bahasa untuk memungkinkan sintaksis seperti tipe yang Anda sukai, tetapi (saya menebak) mereka memutuskan bahwa itu tidak sebanding dengan aturan penguraian yang lebih kompleks.