06 July 2013

Balajar JAVA 31 : Echanted / Optimized Loop [ForEACH loop technique]

          Salam semua.. Ingat lagi tak tentang loop?? Mesti laa ingat en,, semua dah master bab2 loop nih .. Ok, jom kita revise balik.. Loop ni guna die untuk pusing-pusing atau putar-putar atau ulang satu proses yang sama tanpa perlu menaip semula proses tersebut banyak kali dalam code. 


Loop pulak terbahagi kepada 3 iaitu:

  • while Loop
  • do...while Loop
  • for Loop
Ok sudah pun revise.. Jadi hari ni kita fokus kepada loop ketiga : FOR LOOP.. Tapi kali ni bukan FOR LOOP yang biasa kita kenal.. tapi Optimize FOR Loop .. Perumpamaannya, Goku Son yang dah jadi Super Saiyan God dalam DBZ : Battle of The God tuu n_n ...

Ok nak tengok citer DBZ tu bezanya?? Yang bawah ni FOR biasa

for( int i = 0 ; i < arrData.length; i + + ) {
          System.out.println(arrData[i]);
 }

Yang bawah ni pulak enchanted loop
for( : ){ System.out.println();//Any other operation can be done with this temp variable.}
Sekarang sudah nampak perbezaannya. Code kita da jadi lebih ringkas. Dan, tiada penggunaan index ataupun counter dalam loop.
Sebelum terlupa, data type yang kita declared dalam foreach loop mesti serupa dengan data type of the array/list to be iterated.
Tak nampak lagi?? Kurang jelas ?? Baik tengok contoh code program penuh nih:-

public class UsingForEach {
 
public static void main(String[] args) {
 
String[] arrData = {"Alpha""Beta""Gamma""Delta""Sigma"};
 
//Loop Konvensional (Looping Normal - Biasa)
 
System.out.println("Using conventional For Loop:");
 
for(int i=0; i
 
System.out.println(arrData[i]);
 
}
                                                                                                                         //Optimized loop - juga dipanggil sbg foreach loop
                                                            System.out.println("nUsing Foreach loop:");
 
 for (String strTemp : arrData){
 
System.out.println(strTemp);
 
}
 
}
 
}
//Baca lagi di  http://www.javatutorialhub.com/foreach-loop-java#cQkFLPxUjY1k8HqU.99 //
Ok.. skunk nak terangkan satu-satu.. Ye laa bukan semua orang tengok kode boleh faham.. mana taw ada adik2 kita yang turut join belajar sekali... Baiklah mula2 kita fokus kat sini..
public class UsingForEach {
 
public static void main(String[] args) {
 
String[] arrData = {"Alpha""Beta""Gamma""Delta""Sigma"};
 
for (String strTemp : arrData){
 
System.out.println(strTemp);
 
}
 
}
 
}
//Baca lagi di  http://www.javatutorialhub.com/foreach-loop-java#cQkFLPxUjY1k8HqU.99 //
      Mula-mula kita akan buat array dengan nama arrData [ ]. Dan assignkan maklumat2 ke dalam array variables tu.. macam.. {"Alpha", "Beta", "Gamma", "Delta", "Sigma"}..

Ini bahagian paling penting untuk tutorial ni:
for (String strTemp : arrData)

        enhanced for loop lebih kurang sama macam for loop yang biasa, yang lainnya cuma apa yang kita letak dalam kurungan tu.
for loop yang biasa perlukan 3 statement dalam kurungan kan?
Untuk enhanced for loop dia lain sikit.

1) Mula-mula kita tulis jenis array yang kita nak loop-kan, untuk program kita ni kita letak  for (String.

2) Kemudian kita buat variable untuk rujukan, nak letak nama apa pun boleh. Untuk demo, kita letak strTemp : .

3) Lepas titik bertindih tu kita letak benda apa yang kita nak rujuk. Dalam kes ni, kita nak loop untuk semua elemen dalam array arrData, jadi kita letak  arrData).

Jadi, apa yang berlaku nanti ialah kita akan loop untuk semua elemen dalam array arrData  tak kiralah berapa banyak yang ada.

Dan apabila kita run, kita akan dapat:
Alpha
Beta
Gamma
Delta
Sigma
sebab untuk program ni kita hanya print saja setiap elemen tu berdasarkan rujukan yang bernama strTemp.

Kalau nak, boleh jugak buat macam ni:


public class UsingForEach {
 
public static void main(String[] args) {
 
int[] arrData = {1005010050100};
int total = 0; 

for (int IntTemp : arrData){ 
 total += IntTemp;
}
 System.out.println(total);
}
 
}
//Baca lagi di  http://www.javatutorialhub.com/foreach-loop-java#cQkFLPxUjY1k8HqU.99 //
     

enhanced for loop sum of array

Dan bila kita run, hasilnya:
400

iaitu jumlah untuk semua nombor tu. Taht's all for today.. Thankyou .. Goodbye..heehee... Mmm.. berkenalan laa sikit dengan for loop yang baru ni. Bak kata orang tak kenal maka tak cinta.. :D

Tanyalaa saya kalau tak faham.. Jangan senyap je keyh : )

No comments: