1. Mbandhingake puteran: forvswhile

A whileloop bisa digunakake ing ngendi wae statement utawa klompok statement kudu dileksanakake kaping pirang-pirang. Nanging ing antarane kabeh skenario sing bisa ditindakake, siji kudu disorot.

Kita ngomong babagan kahanan nalika programer (pencipta program) ngerti sadurunge kaping pirang-pirang loop kudu dieksekusi. Iki biasane ditangani kanthi nyatakake variabel counter khusus, banjur nambah (utawa ngurangi) variabel kanthi 1saben pengulangan loop.

Kabeh katon kaya sing dikarepake, nanging ora trep banget. Sadurunge daur ulang, kita nyetel nilai awal variabel counter. Banjur ing kondisi kita mriksa apa wis tekan nilai final. Nanging kita biasane ngganti nilai ing mburi banget awak daur ulang.

Lan apa yen awak daur ulang gedhe? Utawa yen kita duwe sawetara puteran nested? Umumé, ing kasus iki, iku seng di pengeni kanggo ngumpulake kabeh informasi babagan counter variabel ing sak panggonan. Lan pramila kita duwe daur forulang ing Jawa. Iku uga ora katon rumit banget:

for (statement 1; condition; statement 2)
{
   block of statements
}

A whiledaur ulang mung nduweni kondisi ing kurung, nanging fordaur ulang nambah rong statement, dipisahake dening titik koma.

Kasunyatane luwih gampang tinimbang sing diarani: kompiler ngowahi forloop dadi whileloop biasa kaya iki:

statement 1;
while (condition)
{
   block of statements
   statement 2;
}

Utawa luwih apik, ayo nuduhake iki nganggo conto. Loro cuplikan kode ing ngisor iki padha.

Pilihan 1 Pilihan 2
for (int i = 0; i < 20; i++)
{
   System.out.println(i);
}
int i = 0;
while (i < 20)
{
   System.out.println(i);
   i++;
}

Kita mung nglumpukake ing sak panggonan kabeh kode sing ana hubungane karo ivariabel counter.

Ing forloop, statement 1 dieksekusi mung sapisan, sadurunge loop kasebut diwiwiti. Iki bisa dideleng kanthi cetha ing cuplikan kode kapindho

statement 2 dieksekusi kaping pirang-pirang karo awak loop, lan saben-saben dieksekusi sawise kabeh awak loop wis dieksekusi.


2. Ing ngendi forgelung digunakake

Loop forbisa uga minangka jinis loop sing paling akeh digunakake ing Jawa. Iki digunakake ing endi wae, kanggo programer mung luwih cetha lan luwih trep tinimbang whileloop. Sakbenere sembarang whileloop bisa diowahi dadi forloop.

Tuladha:

while loop kanggo loop
int i = 3;
while (i >= 0)
{
   System.out.println(i);
   i--;
}
for (int i = 3; i >= 0; i--)
{
   System.out.println(i);
}
int i = 0;
while (i < 3)
{
   System.out.println(i);
   i++;
}
for (int i = 0; i < 3; i++)
{
   System.out.println(i);
}
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
for (boolean isExit = false; !isExit; )
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
while (true)
   System.out.println("C");
for (; true; )
   System.out.println("C");
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}
for (; true; )
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}

Pay manungsa waé kanggo conto pungkasan. Pernyataan kanggo nggarap counter loop ora ana. Ora ana counter lan ora ana statement.

Ing fordaur ulang, Jawa ngidini sampeyan ngilangi "statement kanggo initialize counter" lan "statement kanggo nganyari counter". Malah ekspresi sing nemtokake kondisi loop bisa diilangi.



3. Nuansa nggunakake fordaur ulang

Titik penting babagan nggunakake forputeran lan breaklan continuestatement.

A breakstatement ing fordaur ulang dianggo padha karo daur whileulang - iku terminates daur ulang langsung. A continuestatement skips awak daur ulang, nanging ora statement 2(sing ngganti counter daur ulang).

Ayo goleki liyane babagan kepiye hubungane forlan loop.while

for (statement 1; condition; statement 2)
{
   block of statements
}
statement 1;
while (condition)
{
   block of statements
   statement 2;
}

Yen continuestatement dieksekusi ing forloop , banjur blok statement liyane dilewati, nanging statement 2 (sing bisa digunakake karo forvariabel counter loop) isih dieksekusi.

Ayo bali menyang conto kanthi nglewati nomer sing bisa dibagi 7.

Kode iki bakal loop ing salawas-lawase Kode iki bakal apik
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
   i++;
}
for (int i = 1; i <= 20; i++)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
}

Kode sing nggunakake whiledaur ulang ora bakal bisa — aku ora bakal luwih saka 7. Nanging kode karo daur forulang bakal bisa nggoleki.



4. Mbandingaken kanggo puteran: Jawa vs Pascal

Miturut cara, Pascal uga duwe Fordaur ulang. Umumé, saben basa pamrograman duwe siji. Nanging ing Pascal iku super cetha. Tuladha:

Pascal Jawa
For i := 1 to 10 do
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i++)
{
   System.out.println(i);
}
For i := 1 to 10 do step 2
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i = i + 2)
{
   System.out.println(i);
}
For i := 10 downto 0 do step 2
Begin
   Writeln(i);
End;
for (int i = 10; i >= 0; i = i - 2)
{
   System.out.println(i);
}