Οι βρόχοι (Loops) είναι μια δομή της προγραμματιστικής γλώσσας που επιτρέπει την επαναλαμβανόμενη εκτέλεση ενός μπλοκ κώδικα για μια συγκεκριμένη συνθήκη.
Οι βρόχοι είναι ιδιαίτερα χρήσιμοι, καθώς μπορούν να εξοικονομήσουν χρόνο και να μειώσουν τα λάθη στον προγραμματισμό. Επιτρέπουν την αυτοματοποίηση επαναλαμβανόμενων διαδικασιών και μπορούν να επιτρέψουν σε έναν προγραμματιστή να γράψει λιγότερο κώδικα. Επιπλέον, η χρήση βρόχων καθιστά τον κώδικα πιο ευανάγνωστο, καθώς επισημαίνει την επαναλαμβανόμενη φύση της εκτέλεσης.
Γενικά, η χρήση βρόχων σας επιτρέπει να εκτελείτε μια συγκεκριμένη δράση ξανά και ξανά, όσο καιρό μια συνθήκη παραμένει αληθής, με αποτέλεσμα να βελτιώνεται η αποτελεσματικότητα και η ακρίβεια του προγράμματος.
Στη γλώσσα προγραμματισμού Java, υπάρχουν δύο βασικές μορφές επαναληπτικών δομών:
- Ο βρόχος “for”: Ο βρόχος “for” χρησιμοποιείται για να εκτελέσει ένα σύνολο εντολών έναν προκαθορισμένο αριθμό φορών. Αποτελείται από τρία μέρη: την αρχικοποίηση, τη συνθήκη επανάληψης και την ανανέωση.
- Ο βρόχος “while”: Ο βρόχος “while” χρησιμοποιείται για να εκτελέσει ένα σύνολο εντολών επαναληπτικά μέχρι μια συγκεκριμένη συνθήκη να γίνει ψευδής. Ελέγχει τη συνθήκη πριν από κάθε επανάληψη και σε περίπτωση που είναι αληθής, εκτελεί το σώμα του βρόχου.
Ο βρόχος while επαναλαμβάνει ένα μπλοκ κώδικα όσο μια συγκεκριμένη συνθήκη εξακολουθεί να είναι αληθής.
Η συντακτική δομή της while
είναι η εξής:
while (condition) { // Μπλοκ κώδικα που θα εκτελεστεί όσο η συνθήκη είναι αληθής }
Όταν η συνθήκη γίνει ψευδής, η εκτέλεση της επανάληψης διακόπτεται και η εκτέλεση του κώδικα συνεχίζει μετά το τέλος του μπλοκ κώδικα του while
.
Παραδείγμα:
int i = 0; // Δημιουργία μιας μεταβλητής i και αρχικοποίηση της στην τιμή 0 while (i < 5) { // Εκτέλεση του παρακάτω μπλοκ κώδικα όσο το i είναι μικρότερο από 5 System.out.println(i); // Εκτύπωση της τρέχουσας τιμής του i i++; // Αύξηση της τιμής του i κατά 1 }
Ο παραπάνω κώδικας χρησιμοποιεί μια μεταβλητή i
για να πραγματοποιήσει μια επανάληψη. Αρχικά, η μεταβλητή i
αρχικοποιείται στην τιμή 0. Έπειτα, ο κώδικας εκτελείται επαναληπτικά μέχρι το i
να γίνει μεγαλύτερο ή ίσο του 5.
Κατά τη διάρκεια κάθε επανάληψης, εκτυπώνεται η τρέχουσα τιμή του i
με τη χρήση της μεθόδου System.out.println()
. Έπειτα, η τιμή του i
αυξάνεται κατά 1 με την εντολή i++
.
Συνολικά, ο παραπάνω κώδικας θα εκτυπώσει τους αριθμούς 0, 1, 2, 3, 4 στην κονσόλα, καθώς αυξάνει την τιμή του i
μετά από κάθε επανάληψη, μέχρι να φτάσει στο 5 και να τερματίσει η επανάληψη.
Παραδείγμα:
int i = 10; // Αρχικοποίηση μεταβλητής i με την τιμή 10 while (i >= 0) { // Επανάληψη όσο η τιμή του i είναι μεγαλύτερη ή ίση με 0 System.out.println(i); // Εκτύπωση της τιμής του i i -= 2; // Μείωση της τιμής του i κατά 2 }
Ο παραπάνω κώδικας ξεκινάει με την αρχικοποίηση της μεταβλητής i
με την τιμή 10. Στη συνέχεια, ξεκινάει μια επανάληψη while
, η οποία θα εκτελεστεί όσο η τιμή του i
είναι μεγαλύτερη ή ίση με 0.
Κάθε φορά που εκτελείται ο κύκλος της επανάληψης, εκτυπώνεται η τιμή του i
με τη χρήση της μεθόδου System.out.println()
. Έπειτα, η τιμή του i
μειώνεται κατά 2 με την εντολή i -= 2
.
Η επανάληψη συνεχίζεται μέχρι η τιμή του i
να γίνει αρνητική, καθώς κάθε φορά μειώνεται κατά 2. Κατά τη διάρκεια της εκτέλεσης του κώδικα, θα εκτυπωθούν οι αριθμοί 10, 8, 6, 4, 2, 0 σε διαδοχικές γραμμές.
[adinserter block=”2″]
Ο βρόχος do/while είναι μια παραλλαγή του βρόχου while στην Java. Αυτός ο βρόχος εκτελεί το μπλοκ κώδικα του τουλάχιστον μία φορά, πριν αξιολογηθεί η συνθήκη ελέγχου και διαπιστωθεί εάν είναι αληθής ή όχι.
Αυτό σημαίνει ότι, ανεξάρτητα από την αρχική τιμή της συνθήκης, το μπλοκ κώδικα του βρόχου do/while θα εκτελεστεί τουλάχιστον μία φορά. Έπειτα, η συνθήκη ελέγχεται και, αν είναι αληθής, ο βρόχος επαναλαμβάνεται για άλλες επαναλήψεις. Η επανάληψη θα συνεχιστεί μέχρι η συνθήκη να γίνει ψευδής, δηλαδή να μην ικανοποιείται πλέον.
Αυτή η διαφορά με τον απλό βρόχο while καθιστά τον βρόχο do/while χρήσιμο σε περιπτώσεις όπου θέλουμε να εκτελέσουμε το μπλοκ κώδικα τουλάχιστον μία φορά, ανεξάρτητα από την αρχική τιμή της συνθήκης.
Η συντακτική δομή του do/while
είναι η εξής:
do { // Μπλοκ κώδικα που θα εκτελεστεί τουλάχιστον μία φορά } while (condition);
Η διαφορά μεταξύ του while
και του do/while
είναι ότι στο do/while
το μπλοκ κώδικα εκτελείται τουλάχιστον μία φορά, ανεξάρτητα από την τιμή της συνθήκης.
Παραδείγμα:
int i = 0; // Δημιουργία μεταβλητής i και αρχικοποίησή της στην τιμή 0 do { System.out.println(i); // Εκτύπωση της τιμής της μεταβλητής i i++; // Αύξηση της τιμής της μεταβλητής i κατά 1 } while (i < 5); // Ελέγχεται αν η τιμή της μεταβλητής i είναι μικρότερη από 5, και επαναλαμβάνεται αν αυτή η συνθήκη ισχύει
Ο παραπάνω κώδικας ξεκινά με τη δημιουργία μιας μεταβλητής i
και την αρχικοποίησή της στην τιμή 0. Στη συνέχεια, εκτελείται ένας βρόχος do-while
που επαναλαμβάνεται τουλάχιστον μία φορά και συνεχίζεται εφόσον η συνθήκη i < 5
είναι αληθής.
Μέσα στο σώμα του βρόχου, εκτυπώνεται η τιμή της μεταβλητής i
με τη χρήση της μεθόδου System.out.println()
. Έπειτα, η τιμή της i
αυξάνεται κατά 1 με την προσθήκη του i++
, η οποία αντιστοιχεί στην ίδια λειτουργία με i = i + 1
.
Ο βρόχος συνεχίζεται όσο η τιμή της i
είναι μικρότερη από 5. Έτσι, οι αριθμοί από 0 έως 4 θα εκτυπωθούν στην οθόνη, με κάθε επανάληψη του βρόχου.
Παραδείγμα:
int i = 10; // Δημιουργία μεταβλητής i και αρχικοποίησή της στην τιμή 10 do { System.out.println(i); // Εκτύπωση της τιμής της μεταβλητής i i -= 2; // Μείωση της τιμής της μεταβλητής i κατά 2 } while (i >= 0); // Επανάληψη του κώδικα μέχρι η τιμή της μεταβλητής i να είναι μεγαλύτερη ή ίση με 0
O παραπάνω κώδικας δημιουργεί μια μεταβλητή i
και την αρχικοποιεί με την τιμή 10. Στη συνέχεια, χρησιμοποιεί μια δο-ενώ επανάληψη για να εκτυπώνει την τιμή της μεταβλητής i
και να τη μειώνει κατά 2 σε κάθε επανάληψη, μέχρι η τιμή της i
να γίνει μικρότερη από 0. Οι αριθμοί που θα εκτυπωθούν είναι: 10, 8, 6, 4, 2, 0.