Swift while και επαναλάβετε ενώ Loop (Με παραδείγματα)

Σε αυτό το άρθρο, θα μάθετε να δημιουργείτε και να επαναλαμβάνετε… ενώ κάνετε βρόχους στον προγραμματισμό Swift.

Στο προηγούμενο άρθρο, μάθαμε για το loop in-in για να εκτελέσουμε ένα σύνολο εργασιών για ορισμένες φορές. Σε αυτό το άρθρο, θα μάθετε να χρησιμοποιείτε whileκαι repeat… whileως εναλλακτική λύση του for-in loop όταν ο αριθμός των επαναλήψεων είναι άγνωστος.

Λίγος βρόχος εκτελεί ένα σύνολο δηλώσεων έως ότου γίνει μια συνθήκη false. Αυτά τα είδη βρόχων χρησιμοποιούνται καλύτερα όταν ο αριθμός των επαναλήψεων δεν είναι γνωστός πριν από την έναρξη της πρώτης επανάληψης. Το Swift παρέχει δύο είδη βρόχων ενώ:

1. Swift ενώ βρόχος

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

Η σύνταξη του loop loop είναι:

 while (TestExpression) ( // statements )

Πώς λειτουργεί ενώ ο βρόχος;

Η TestExpressionείναι μια boolean έκφραση.

Εάν το TestExpressionαξιολογηθεί true,

  • εκτελούνται δηλώσεις εντός του loop loop.
  • και TestExpressionαξιολογείται ξανά.

Αυτή η διαδικασία συνεχίζεται έως ότου TestExpressionαξιολογηθεί false. Εάν το TestExpressionαξιολογηθεί false, ενώ ο βρόχος τερματίζεται.

Διάγραμμα ροής του Loop

Παράδειγμα 1: While Loop

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true while (currentLevel <= finalLevel) ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) print("outside of while loop")

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 Έχετε περάσει το επίπεδο 0 Έχετε περάσει το επίπεδο 1 Έχετε περάσει το επίπεδο 2 Έχετε περάσει το επίπεδο 3 Έχετε περάσει το επίπεδο 4 Έχετε περάσει το επίπεδο 5 εκτός του while loop 

Στο παραπάνω πρόγραμμα, η μεταβλητή currentLevel και finalLevel αρχικοποιείται σε 0 και η σταθερή gameCompleted αρχικοποιείται σε true.

Σε κάθε επανάληψη του loop loop, ελέγχει την κατάσταση currentLevel <= finalLevel. Εάν η συνθήκη επιστρέψει true, οι δηλώσεις μέσα ενώ ο βρόχος εκτελείται διαφορετικά ο βρόχος τερματίζεται.

Βήματα εκτέλεσης
Επανάληψη Συνθήκη (currentLevel <= finalLevel) Παραγωγή
1 0 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 0
2 1 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 1
3 2 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 2
4 3 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 3
5 4 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 4
6 5 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 5
7 6 <= 5 (ψευδές) έξω από το while loop

2. Επαναλάβετε ενώ βρόχος

Αυτός ο βρόχος αξιολογεί την κατάστασή του στο τέλος κάθε διέλευσης μέσω του βρόχου. Η επανάληψη… ενώ ο βρόχος είναι παρόμοιος με τον βρόχο ενώ με μια διαφορά κλειδιού. Το σώμα της επανάληψης… ενώ ο βρόχος εκτελείται μία φορά πριν ελεγχθεί η δοκιμαστική έκφραση.

Η σύνταξη της επανάληψης… ενώ ο βρόχος είναι:

 repeat ( // statements… ) while (testExpression)

Πώς επαναλαμβάνω… ενώ λειτουργεί ο βρόχος;

Το σώμα της επανάληψης… ενώ ο βρόχος εκτελείται μία φορά (πριν από τον έλεγχο της έκφρασης δοκιμής). Μόνο τότε, ελέγχεται το testExpression.

Εάν το testExpression αξιολογηθεί ως αληθές, εκτελούνται δηλώσεις μέσα στο σώμα του βρόχου και το testExpression αξιολογείται ξανά. Αυτή η διαδικασία συνεχίζεται έως ότου αξιολογηθεί το testExpression false.

Όταν είναι το testExpression false, η επανάληψη… ενώ ο βρόχος τελειώνει.

Διάγραμμα ροής επανάληψης… ενώ Loop

Παράδειγμα 2: Επανάληψη ενώ βρόχος

 var currentLevel:Int = 0, finalLevel:Int = 5 let gameCompleted = true repeat ( //play game if gameCompleted ( print("You have passed level (currentLevel)") currentLevel += 1 ) ) while (currentLevel <= finalLevel) print("outside of repeat while loop") 

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

 Έχετε περάσει το επίπεδο 0 Έχετε περάσει το επίπεδο 1 Έχετε περάσει το επίπεδο 2 Έχετε περάσει το επίπεδο 3 Έχετε περάσει το επίπεδο 4 Έχετε περάσει το επίπεδο 5 εκτός της επανάληψης ενώ ο βρόχος 

Στο παραπάνω παράδειγμα, για πρώτη φορά εκτελούνται οι δηλώσεις εντός του βρόχου. Και για την επόμενη επανάληψη, ελέγχει την κατάσταση currentLevel <= finalLevel.

Εάν η συνθήκη επιστρέψει true, οι δηλώσεις μέσα ενώ ο βρόχος εκτελείται διαφορετικά ο βρόχος τερματίζεται.

Βήματα εκτέλεσης
Επανάληψη Συνθήκη (currentLevel <= finalLevel) Παραγωγή
1 0 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 0
2 1 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 1
3 2 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 2
4 3 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 3
5 4 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 4
6 5 <= 5 (αληθινό) Έχετε περάσει το επίπεδο 5
7 6 <= 5 (ψευδές) εκτός της επανάληψης ενώ βρόχος

Παρόλο που και τα δύο whileκαι τα repeat whileloop έχουν τα ίδια βήματα εκτέλεσης, η συνθήκη currentLevel <= finalLevel στο repeat whileloop εκτελείται μόνο μετά την εκτέλεση των δηλώσεων μέσα σε αυτό.

Αλλά μέσα while, η συνθήκη ελέγχεται στην αρχή πριν από την εκτέλεση των δηλώσεων μέσα σε αυτήν.

3. Απεριόριστο ενώ βρόχος

Εάν η δοκιμαστική έκφραση δεν αξιολογηθεί ποτέ false, το σώμα whileκαι ο repeat… whileβρόχος εκτελούνται άπειρες φορές.

Παράδειγμα 3: Απεριόριστο ενώ βρόχος

 while (true) ( print("Hello, World!") )
 repeat ( print("Hello, World!") ) while (true)

Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:

Γειά σου Κόσμε! Γειά σου Κόσμε!…

Όταν εκτελείτε το πρόγραμμα, και οι δύο βρόχοι εκτελούν print("Hello, World!")δήλωση για απεριόριστες φορές. Έτσι, μπορείτε να δείτε τη συνεχή έξοδο Γεια, Κόσμος! στην κονσόλα.

ενδιαφέροντα άρθρα...