1. Ekspresi vs statement

Ing basa Jawa, bisa mbedakake rong kategori: pratelan lan ekspresi . Sawijining statement biasane diarani dieksekusi , dene ekspresi diarani dievaluasi . Nanging dudu sing paling penting.

Bentenipun utama antarane statement lan ekspresi yaiku ngevaluasi ekspresi nduweni asil . Lan asil iki nduweni jinis, lan bisa diutus kanggo variabel utawa digunakake ing sawetara expression liyane.

Tuladha:

Kode Cathetan
int x; Pratelan
(a < 10) Ekspresi kang jiniseboolean
i++; Ekspresi kang jinise padha karo jinise ivariabel
x = 5; Ekspresi kang jinise padha karo jinise xvariabel

Lan apa iki menehi kita?

Pisanan, kita bisa njupuk kauntungan saka kasunyatan sing akeh statements bener ekspresi (tegese padha ngevaluasi kanggo nilai). Contone, kode kaya iki bakal bisa digunakake:

Kode Cathetan
int x, y, z;
x = y = z = 1;
int x, y, z;
x = (y = (z = 1))

Kapindho, yen kita pengin, kita bisa nglirwakake asil ngevaluasi ekspresi.

Kode Kode ing ngendi kita nglirwakake asil:
int x = scanner.nextInt();
boolean m = (5 < 10);
scanner.nextInt();
(5 < 10);

Kita ora nglirwakake asil ngevaluasi ekspresi, contone, yen ekspresi kasebut kalebu tumindak sing migunani, lan tumindak iki sing penting kanggo kita, dudu asile dhewe.


2. Operator Ternary

Hack urip iki wis luwih menarik tinimbang sing sadurunge. Jawa nduweni operator ternary khusus . Sintaks kasebut meh padha karo sintaks kanggo pernyataan kasebut:if-else

Condition ? Expression 1 : Expression 2;

Yen kondisi bener, banjur Ekspresi 1 dievaluasi, yen Ekspresi 2 dievaluasi. Kahanan kasebut diterusake kanthi tandha pitakon , lan rong ekspresi kasebut dipisahake kanthi titik loro .

Bentenane utama antarane operator ternary lan if-elsestatement yaiku operator ternary minangka ekspresi, tegese kita bisa nemtokake asile menyang sesuatu.

Contone, umpamane kita pengin ngetung minimal rong nomer. Nggunakake operator ternary, kode iki bakal katon kaya iki:

int a = 2;
int b = 3;
int min = a < b ?  a : b;

Utawa, umpamane sampeyan kudu nemtokake nilai sing beda menyang variabel gumantung saka sawetara kondisi. Kepiye carane nindakake?

Salah sawijining pilihan yaiku nggunakake if-elsestatement:

int age = 25;
int money;
if (age > 30)
   money = 100;
else
   money = 50;

Opsi kapindho yaiku nggunakake operator ternary , yaiku, shorthand kanggo if-elsestatement:

int age = 25;
int money = age > 30 ? 100 : 50;

Dadi endi sing luwih apik digunakake - if-elsestatement utawa operator ternary ? Ing babagan kacepetan eksekusi, ora ana bedane. Iki luwih akeh babagan keterbacaan kode. Lan iki minangka titik sing penting banget: kode kasebut ora mung bisa digunakake kanthi bener, nanging uga gampang diwaca dening programer liyane.

Aturan sing paling gampang yaiku: yen kode pas karo siji baris , banjur gunakake operator ternary ; nanging yen ora cocog karo siji baris, luwih becik nggunakake if-elsestatement.



3. Mbandhingaké wilangan nyata

Kaya sing wis kasebut sadurunge, sampeyan ora bisa mung njupuk nomer nyata lan mbandhingake. Ana uga kamungkinan sing sawetara digit penting bisa dibuwak, nyebabake efek sisih sing ora dikarepke.

Mulane ana pendekatan sing wis diuji wektu. Yen rong nomer nyata beda-beda kanthi nilai sing cilik, mula bisa dianggep padha. Tuladha:

double a = 1.000001;
double b = 1.000002;
if ( (b - a) < 0.0001 )
   System.out.println("The numbers are equal");
else
   System.out.println("The numbers are not equal");

Nanging ora kabeh sing kudu kita kuwatir, amarga bedane antarane nomer kasebut bisa uga negatif. Supaya pendekatan iki bisa digunakake, sampeyan kudu mbandhingake ora mung prabédan antarane nomer, nanging nilai mutlak prabédan antarane nomer:|a-b|

Jawa nduweni cara kanggo ngetung angka absolut: Math.abs():

int m = Math.abs(value);

Akibaté, versi sing didandani saka conto ing ndhuwur bakal katon kaya iki:

double a = 1.000001;
double b = 1.000002;

if ( Math.abs(b - a) < 0.0001 )
   System.out.println("The numbers are equal");
else
   System.out.println("The numbers are not equal");