Στην Java, ο βρόχος for
χρησιμοποιείται όταν γνωρίζετε ακριβώς πόσες φορές θέλετε να επαναλάβετε ένα μπλοκ κώδικα. Σε αντίθεση με τον βρόχο while
, ο for
βρόχος έχει μια συγκεκριμένη δομή συντακτικού που αποτελείται από τρία στοιχεία.
Η συντακτική δομή του for
βρόχου είναι η εξής:
for (statement 1; statement 2; statement 3) { // Μπλοκ κώδικα που θα εκτελεστεί σε κάθε επανάληψη }
Τα τρία στοιχεία του βρόχου for
είναι:
- Statement 1: Αρχικοποίηση της μεταβλητής ελέγχου
- Statement 2: Έλεγχος της συνθήκης επανάληψης
- Statement 3: Αλλαγή της τιμής της μεταβλητής ελέγχου σε κάθε επανάληψη
Παρακάτω δίνονται δύο παραδείγματα με βρόχους for
σε Java:
for (int i = 0; i < 5; i++) { System.out.println(i); }
Στο παραπάνω παράδειγμα, ο βρόχος for
θα εκτελέσει το μπλοκ κώδικα του 5 φορές, αφού η μεταβλητή i
αρχικοποιείται στο 0, έχει ως συνθήκη επανάληψης i < 5
και αυξάνεται κατά 1 σε κάθε επανάληψη.
for (int i = 10; i >= 0; i -= 2) { System.out.println(i); }
Στο παραπάνω παράδειγμα, ο βρόχος for
θα εκτελέσει το μπλοκ κώδικα του 6 φορές, αφού η μεταβλητή i
αρχικοποιείται στο 10, έχει ως συνθήκη επανάληψης i >= 0
και μειώνεται κατά 2 σε κάθε επανάληψη.
Μπορείτε επίσης να χρησιμοποιήσετε τον βρόχο for
για να επαναλάβετε μια συλλογή αντικειμένων, όπως πίνακες ή λίστες. Στην περίπτωση αυτή, μπορείτε να χρησιμοποιήσετε τη μέθοδο length
για να βρείτε το μέγεθος της συλλογής και να το χρησιμοποιήσετε στη συνθήκη επανάληψης του βρόχου for
. Παρακάτω δίνεται ένα παράδειγμα:
int[] numbers = {2, 4, 6, 8, 10}; for (int i = 0; i < numbers.length; i++) { System.out.println(numbers[i]); }
Στο παραπάνω παράδειγμα, ο βρόχος for
θα εκτυπώσει τα στοιχεία του πίνακα numbers
, αφού αρχικοποιήσει τη μεταβλητή i
στο 0, έχει ως συνθήκη επανάληψης i < numbers.length
και αυξάνει τη μεταβλητή i
κατά 1 σε κάθε επανάληψη.
[adinserter block=”2″]
Οι βρόχοι for
είναι πολύ χρήσιμοι στην Java, καθώς μπορούν να μειώσουν τον κώδικα και να κάνουν τον κώδικα πιο αποδοτικό.
Αυτό το παράδειγμα θα εκτυπώσει μόνο τις άρτιες τιμές από το 0 έως το 20:
for (int i = 0; i <= 20; i += 2) { System.out.println(i); }
Στο παραπάνω παράδειγμα, ο βρόχος for
θα εκτελείται μετά από την αρχικοποίηση της μεταβλητής i
στο 0. Στη συνέχεια, στη συνθήκη επανάληψης, ελέγχεται αν η μεταβλητή i
είναι μικρότερη ή ίση με το 20. Αν η συνθήκη είναι αληθής, τότε το μπλοκ κώδικα του βρόχου εκτελείται, στη συγκεκριμένη περίπτωση εμφανίζοντας την τρέχουσα τιμή της μεταβλητής i
. Στη συνέχεια, η μεταβλητή i
αυξάνεται κατά 2 σε κάθε επανάληψη, και τον επόμενο κύκλο ελέγχου της συνθήκης επανάληψης το μπλοκ κώδικα εκτελείται μόνο αν η συνθήκη είναι αληθής και η μεταβλητή i
είναι ακέραιος αριθμός ζυγός.
Είναι επίσης δυνατόν να τοποθετήσετε έναν βρόχο μέσα σε έναν άλλον βρόχο. Αυτό ονομάζεται εμφωλευμένος βρόχος.
Ο “εσωτερικός βρόχος” θα εκτελείται μία φορά για κάθε επανάληψη του “εξωτερικού βρόχου”:
for (int i = 1; i <= 5; i++) { for (int j = 1; j <= 3; j++) { System.out.println(i + " * " + j + " = " + (i*j)); } }
Στο παραπάνω παράδειγμα, ο εξωτερικός βρόχος εκτελείται 5 φορές και ο εσωτερικός βρόχος εκτελείται 3 φορές για κάθε επανάληψη του εξωτερικού βρόχου. Εντός του εσωτερικού βρόχου εκτυπώνεται το γινόμενο των μεταβλητών i
και j
. Συνεπώς, το παραπάνω παράδειγμα θα εκτυπώσει τον πίνακα πολλαπλασιασμού από το 1 έως το 5, όπως παρακάτω:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15
Οι εμφωλευμένοι βρόχοι μπορούν να χρησιμοποιηθούν σε πολλά σενάρια προγραμματισμού, για παράδειγμα για να δημιουργήσετεδιδακτικά παιχνίδια, για τον υπολογισμό του μέσου όρου ενός πίνακα, για την αναζήτηση ενός στοιχείου σε μια πολύδιαστατη λίστα, και πολλά άλλα. Είναι σημαντικό να θυμάστε ότι οι εμφωλευμένοι βρόχοι μπορούν να καταναλώνουν πολλούς πόρους υπολογιστή, οπότε πρέπει να είστε προσεκτικοί στον τρόπο με τον οποίο τους χρησιμοποιείτε.
Υπάρχει επίσης ένας “for-each” βρόχος, ο οποίος χρησιμοποιείται αποκλειστικά για να επαναλαμβάνει στοιχεία σε έναν πίνακα:
for (type variableName : arrayName) { // block of code to be executed }
Το παρακάτω παράδειγμα εξάγει όλα τα στοιχεία στον πίνακα gpu
χρησιμοποιώντας έναν “for-each” βρόχο:
String[] gpu = {"Nvidia", "AMD", "Intel"}; for (String i : gpu) { System.out.println(i); }
Το αποτέλεσμα θα είναι η εκτύπωση των στοιχείων στον πίνακα gpu
:
Nvidia AMD Intel
Ο “for-each” βρόχος είναι χρήσιμος όταν θέλετε να επαναλάβετε μέσα σε έναν πίνακα όλα τα στοιχεία ή να εξετάσετε ή να επεξεργαστείτε κάθε στοιχείο ξεχωριστά. Είναι πιο συνοπτικός και ευανάγνωστος από τον κλασικό “for” βρόχο όταν χρησιμοποιείται για τη διαχείριση ενός πίνακα.