Ο βρόχος “while” επιτρέπει την εκτέλεση ενός συνόλου εντολών επαναληπτικά όσο μια συνθήκη είναι αληθής.
Η σύνταξη του βρόχου “while” είναι η εξής:
while συνθήκη: εντολή
Οι εντολές του βρόχου “while” εκτελούνται επαναλαμβανόμενα όσο η συνθήκη είναι αληθής. Η συνθήκη ελέγχεται στην αρχή κάθε επανάληψης.
Παρακάτω παρατίθεται ένα παράδειγμα χρήσης του βρόχου “while”:
count = 0 # Αρχικοποίηση της μεταβλητής count με την τιμή 0 # Επανάληψη μέχρι η συνθήκη count < 5 να μην ισχύει while count < 5: print("Count:", count) # Εκτύπωση της τιμής της μεταβλητής count count += 1 # Αύξηση της τιμής της μεταβλητής count κατά 1 μετά από κάθε επανάληψη
Σε αυτό το παράδειγμα, ο βρόχος “while” εκτελείται όσο η μεταβλητή “count” είναι μικρότερη από 5. Κάθε φορά που εκτελείται ο βρόχος, εκτυπώνεται η τιμή της μεταβλητής “count” και η μεταβλητή αυξάνεται κατά 1. Ο βρόχος συνεχίζει να εκτελείται μέχρι η συνθήκη να μην ισχύει πλέον.
Παρακάτω παρατίθεται ένα παράδειγμα χρήσης του βρόχου “while” για την εκτύπωση αριθμών μέχρι το 10:
number = 1 # Αρχικοποίηση του αριθμού με την τιμή 1 # Επανάληψη μέχρι ο αριθμός να φτάσει στο 10 while number <= 10: print(number) # Εκτύπωση του αριθμού number += 1 # Αύξηση του αριθμού κατά 1 μετά από κάθε επανάληψη
Ο βρόχος “while” ελέγχει τη συνθήκη number <= 10
, και επαναλαμβάνει το μπλοκ κώδικα μέχρι η συνθήκη να μην ισχύει πλέον. Κάθε φορά που εκτελείται το μπλοκ κώδικα, εκτυπώνεται ο αριθμός και η τιμή του αυξάνεται κατά 1. Η επανάληψη συνεχίζεται μέχρι ο αριθμός να φτάσει το 10, και τότε ο βρόχος τερματίζει.
Παρακάτω παρατίθεται ένα παράδειγμα χρήσης του βρόχου “while” για την εμφάνιση των χαρακτήρων ενός string έναν έναν:
text = "Hello, World!" # Ορίζουμε το αρχικό κείμενο index = 0 # Αρχικοποιούμε τον δείκτη στην αρχή του κειμένου while index < len(text): # Ελέγχουμε αν ο δείκτης είναι μικρότερος από το μήκος του κειμένου print(text[index]) # Εκτυπώνουμε τον χαρακτήρα που αντιστοιχεί στον τρέχοντα δείκτη index += 1 # Αυξάνουμε τον δείκτη κατά 1 μετά από κάθε επανάληψη
Ο βρόχος “while” εκτελείται μέχρι η συνθήκη index < len(text) να μην ισχύει πλέον. Σε κάθε επανάληψη, εμφανίζεται ο χαρακτήρας του string που αντιστοιχεί στον τρέχοντα δείκτη index, και ο δείκτης αυξάνεται κατά 1 μετά από κάθε επανάληψη.
[adinserter block=”2″]
Παρακάτω παρατίθεται ένα παράδειγμα χρήσης του βρόχου “while” όπου θα ζητήτε από το χρήστη να εισάγει έναν αριθμό και εμφανίστε τον αντίστροφο:
num = int(input("Enter a number: ")) # Ζητάμε από τον χρήστη να εισάγει έναν αριθμό reverse_num = 0 # Αρχικοποιούμε τον αριθμό αντιστροφής while num != 0: # Όσο ο αριθμός δεν είναι μηδέν remainder = num % 10 # Υπολογίζουμε το υπόλοιπο της διαίρεσης του αριθμού με το 10 reverse_num = reverse_num * 10 + remainder # Αντιστρέφουμε τον αριθμό πολλαπλασιάζοντάς τον με 10 και προσθέτοντας το υπόλοιπο num //= 10 # Αφαιρούμε το τελευταίο ψηφίο του αριθμού print("Reverse number: ", reverse_num) # Εκτύπωση του αριθμού αντιστροφής
Ο κώδικας ζητάει από τον χρήστη να εισάγει έναν αριθμό. Στη συνέχεια, χρησιμοποιεί τον βρόχο while
για να αντιστρέψει τον αριθμό αυτόν. Κατά τη διάρκεια του βρόχου, υπολογίζεται το υπόλοιπο της διαίρεσης του αριθμού με το 10 και προστίθεται στον αριθμό αντιστροφής, ενώ ταυτόχρονα αφαιρείται το τελευταίο ψηφίο του αριθμού. Όταν ο αριθμός γίνει μηδέν, ο βρόχος τερματίζεται και εμφανίζεται ο αντίστροφος αριθμός.
Με τη χρήση της φράσης “break” μπορούμε να διακόψουμε την εκτέλεση ενός βρόχου, ακόμη κι αν η συνθήκη ελέγχου του while είναι αληθής.
Η εντολή “break” πρέπει να εμφανίζεται μέσα σε μια συνθήκη. Όταν εκτελείται η “break”, η εκτέλεση του βρόχου σταματά και η εκτέλεση του προγράμματος συνεχίζεται από την επόμενη εντολή που ακολουθεί μετά τον βρόχο.
Παρακάτω είναι ένα παράδειγμα χρήσης της εντολής “break”:
i = 1 while i < 6: print(i) # Εκτύπωση της τρέχουσας τιμής του i if i == 3: break # Διακοπή του βρόχου αν το i είναι ίσο με 3 i += 1 # Αύξηση της τιμής του i κατά 1 μετά από κάθε επανάληψη
Ο βρόχος “while” εκτελείται όσο η συνθήκη i < 6 είναι αληθής. Σε κάθε επανάληψη, εμφανίζεται η τρέχουσα τιμή του i. Αν η τιμή του i γίνει ίση με 3, ο βρόχος διακόπτεται χρησιμοποιώντας τη δήλωση “break”. Στο τέλος κάθε επανάληψης, η τιμή του i αυξάνεται κατά 1.
Παρακάτω είναι μερικά ακόμα παραδείγματα χρήσης της εντολής “break”:
Επανάληψη μέχρι να βρεθεί συγκεκριμένο στοιχείο σε μια λίστα:
fruits = ["apple", "banana", "cherry", "orange", "kiwi"] # Επανάληψη για κάθε φρούτο στη λίστα for fruit in fruits: # Έλεγχος αν το φρούτο είναι "orange" if fruit == "orange": break # Έξοδος από τον βρόχο αν το φρούτο είναι "orange" print(fruit) # Εκτύπωση του φρούτου # Ο κώδικας συνεχίζει από εδώ μετά την έξοδο από τον βρόχο
Ο βρόχος “for” επαναλαμβάνει για κάθε φρούτο στη λίστα “fruits”. Εάν το τρέχον φρούτο είναι “orange”, τότε ο βρόχος διακόπτεται με τη χρήση της εντολής “break”. Έτσι, μόνο τα φρούτα που εμφανίζονται πριν το “orange” θα εκτυπωθούν. Ο κώδικας που ακολουθεί τον βρόχο θα συνεχιστεί μετά την έξοδο από τον βρόχο.
Επανάληψη για εισαγωγή αριθμών από τον χρήστη, με σταμάτημα όταν δοθεί αρνητικός αριθμός:
numbers = [] while True: num = int(input("Enter a number: ")) # Ζητάμε από τον χρήστη να εισάγει έναν αριθμό if num < 0: # Αν ο αριθμός είναι αρνητικός break # Τερματίζουμε τον βρόχο "while" numbers.append(num) # Προσθέτουμε τον αριθμό στη λίστα "numbers" print("Numbers entered:", numbers) # Εκτυπώνουμε τους αριθμούς που έχουν εισαχθεί
Ο βρόχος “while True” εκτελείται ανεξάρτητα από την αρχική συνθήκη, δημιουργώντας έναν ατέρμονα βρόχο. Ο χρήστης καλείται να εισάγει αριθμούς, και αυτοί οι αριθμοί προστίθενται στη λίστα “numbers”. Ο βρόχος σταματάει όταν ο χρήστης εισάγει έναν αρνητικό αριθμό, και τότε εκτυπώνονται οι αριθμοί που έχουν εισαχθεί μέχρι εκείνη τη στιγμή.
Η εντολή “continue” χρησιμοποιείται για να προκαλέσει τη διακοπή της τρέχουσας επανάληψης και να μεταβεί αμέσως στην επόμενη επανάληψη του βρόχου. Αν βρίσκεται μέσα σε μια δομή επανάληψης, όπως ο βρόχος “for” ή “while”, η εντολή “continue” προκαλεί την άμεση διακοπή της επανάληψης και την άνοδο στην επόμενη επανάληψη.
Έτσι, όταν η εντολή “continue” εκτελείται, το υπόλοιπο του κώδικα μέσα στην τρέχουσα επανάληψη παραλείπεται και η εκτέλεση συνεχίζεται με την επόμενη επανάληψη του βρόχου.
Χρησιμοποιείται κυρίως όταν υπάρχει μια συγκεκριμένη συνθήκη ή κριτήριο που, αν ικανοποιείται, επιθυμούμε να παραλείψουμε το υπόλοιπο του κώδικα της τρέχουσας επανάληψης και να προχωρήσουμε αμέσως στην επόμενη επανάληψη.
[adinserter block=”3″]
Ακολουθεί ένα παράδειγμα:
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] for num in numbers: if num % 2 == 0: continue # Προχωράμε στην επόμενη επανάληψη αν το num είναι ζυγός print(num) # Εκτύπωση του num αν είναι περιττός
Ο βρόχος “for” διατρέχει κάθε στοιχείο της λίστας “numbers”. Με τη χρήση του “if” ελέγχεται αν το τρέχον στοιχείο (num) είναι ζυγός (το υπόλοιπο της διαίρεσής του με το 2 είναι 0). Αν αυτή η συνθήκη ισχύει, τότε με την εντολή “continue” προχωράμε στην επόμενη επανάληψη του βρόχου χωρίς να εκτελέσουμε τις εντολές που ακολουθούν. Αν η συνθήκη δεν ισχύει, τότε εκτυπώνεται το τρέχον περιττό στοιχείο (num).
Παρακάτω υπάρχουν μερικά ακόμα παραδείγματα με τη χρήση της εντολής “continue”:
for i in range(6): if i == 3: continue # Παραλείπει την τρέχουσα επανάληψη και πηγαίνει στην επόμενη print(i) # Εκτύπωση της τιμής της μεταβλητής i
Ο βρόχος “for” εκτελείται για τιμές της μεταβλητής i από 0 έως 5. Μέσα στον βρόχο, γίνεται έλεγχος εάν η τιμή της μεταβλητής i είναι ίση με 3. Εάν ισχύει αυτή η συνθήκη, τότε η εντολή “continue” εκτελείται, παραλείποντας την τρέχουσα επανάληψη και μεταβαίνοντας αμέσως στην επόμενη επανάληψη. Αν η συνθήκη δεν ισχύει, τότε εκτελείται η εντολή “print(i)” για να εμφανίσει την τρέχουσα τιμή της μεταβλητής i.
Παράδειγμα:
numbers = [2, 8, 3, 6, 1, 9, 4] for num in numbers: if num < 5: continue # Αν ο αριθμός είναι μικρότερος από 5, προχωράμε στην επόμενη επανάληψη χωρίς να εκτελέσουμε τις εντολές που ακολουθούν. print(num) # Εμφανίζουμε τον αριθμό στην οθόνη.
Στον παραπάνω κώδικα, διατρέχουμε τη λίστα numbers
και για κάθε αριθμό ελέγχουμε αν είναι μικρότερος από 5. Αν ισχύει αυτή η συνθήκη, χρησιμοποιούμε την εντολή continue
για να προχωρήσουμε στην επόμενη επανάληψη χωρίς να εκτελέσουμε τις υπόλοιπες εντολές του βρόχου. Αν ο αριθμός δεν είναι μικρότερος από 5, εκτελούμε την εντολή print(num)
για να εμφανίσουμε τον αριθμό στην οθόνη.
Στο παρακάτω παράδειγμα, θα εκτελεστεί η εντολή “else” όταν η τιμή του i είναι μεγαλύτερη από 4:
for i in range(6): if i > 4: break # Έξοδος από τον βρόχο print(i) else: print("Loop finished") # Εκτελείται μόνο αν ο βρόχος ολοκληρωθεί χωρίς break
Στον παραπάνω κώδικα, χρησιμοποιείται ο βρόχος “for” για να επαναλάβει τον κώδικα για τιμές του i από 0 έως 5. Μέσα στον βρόχο, υπάρχει ένας έλεγχος με την συνθήκη “if i > 4:”. Αν η συνθήκη ισχύει, τότε εκτελείται η εντολή “break”, η οποία οδηγεί στην άμεση έξοδο από τον βρόχο.
Αν δεν συμβεί break και ο βρόχος ολοκληρωθεί κανονικά, τότε εκτελείται η εντολή “else:”, που εμφανίζει το μήνυμα “Loop finished”. Αυτή η εντολή εκτελείται μόνο αν ο βρόχος ολοκληρωθεί χωρίς να συμβεί break.