Για κάθε παράδειγμα: Βελτιωμένη για να επαναλάβει το Java Array

Anonim

Για κάθε βρόχο είναι μια άλλη μορφή βρόχου που χρησιμοποιείται για να διασχίσει τον πίνακα. για κάθε βρόχο μειώνει σημαντικά τον κώδικα και δεν υπάρχει χρήση του ευρετηρίου ή μάλλον του μετρητή στον βρόχο.

Σύνταξη:

For( : ){System.out.println();//Any other operation can be done with this temp variable.}

Ας πάρουμε το παράδειγμα χρησιμοποιώντας έναν πίνακα συμβολοσειρών που θέλετε να επαναλάβετε χωρίς να χρησιμοποιήσετε μετρητές.

Εξετάστε έναν πίνακα συστοιχιών arrData που αρχικοποιήθηκε ως εξής:

String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};

Παρόλο που μπορεί να γνωρίζετε μεθόδους όπως η εύρεση του μεγέθους του πίνακα και μετά η επανάληψη μέσω κάθε στοιχείου του πίνακα χρησιμοποιώντας το παραδοσιακό για βρόχο (μετρητής, κατάσταση και αύξηση), πρέπει να βρούμε μια πιο βελτιστοποιημένη προσέγγιση που δεν θα χρησιμοποιεί τέτοιο μετρητή .

Αυτή είναι η συμβατική προσέγγιση του βρόχου «για»:

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

Μπορείτε να δείτε τη χρήση του μετρητή και στη συνέχεια να το χρησιμοποιήσετε ως ευρετήριο του πίνακα.

Η Java παρέχει έναν τρόπο χρήσης του βρόχου «για» που θα επαναλαμβάνεται σε κάθε στοιχείο του πίνακα.

Εδώ είναι ο κωδικός για τον πίνακα που είχαμε δηλώσει νωρίτερα-
for (String strTemp : arrData){System.out.println(strTemp);}

Μπορείτε να δείτε τη διαφορά μεταξύ των βρόχων. Ο κωδικός έχει μειωθεί σημαντικά. Επίσης, δεν υπάρχει χρήση του ευρετηρίου ή μάλλον του μετρητή στο βρόχο.

Βεβαιωθείτε ότι, ο τύπος δεδομένων που δηλώνεται στο βρόχο foreach πρέπει να ταιριάζει με τον τύπο δεδομένων της συστοιχίας / λίστας που θέλετε να επαναλάβετε.

Εδώ έχουμε ολόκληρη την τάξη που δείχνει την παραπάνω εξήγηση-
τάξη UsingForEach {Δημόσιο στατικό κενό (String [] args) {Συμβολοσειρά [] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};// Η συμβατική προσέγγιση της χρήσης του βρόχουSystem.out.println ("Χρήση συμβατικού For Loop:");για (int i = 0; i 

Παραγωγή:

Using conventional For Loop:AlphaBetaGammaDeltaSigmaUsing Foreach loop:AlphaBetaGammaDeltaSigma