Πίνακας περιεχομένων:
Βίντεο: Coding Challenge #3: The Snake Game 2024
Ο βρόχος while είναι ο πρωταρχικός τρόπος επαναλήψεως του κώδικα στην PHP, εκτός από το for loop. Ως προγραμματιστής HTML5 και CSS3, μπορεί να υπάρχουν φορές που επιλέγετε το ένα πάνω στο άλλο, αλλά είναι σημαντικό να κατανοήσετε τις διαφορές μεταξύ των δύο.
ενώ οι βρόχοι μοιάζουν πολύ με τους βρόχους. Απαιτούν την ίδια σκέψη:
-
Μεταβλητή φρουρού: Αυτή η ειδική μεταβλητή ελέγχει την πρόσβαση στον βρόχο. Σε αντίθεση με το int που χρησιμοποιείται συνήθως σε για βρόχους, ο φρουρός ενός βρόχου ενώ μπορεί να είναι οποιουδήποτε τύπου.
-
Αρχικοποίηση: Ρυθμίστε την αρχική τιμή της μεταβλητής φρουρού πριν ξεκινήσει ο βρόχος. Μην βασίζεστε στις προεπιλεγμένες ρυθμίσεις (επειδή δεν ξέρετε τι θα είναι). Αντ 'αυτού, ορίστε μόνοι σας αυτήν την τιμή.
-
Μια συνθήκη: Η εντολή while απαιτεί μια προϋπόθεση. Αυτή η κατάσταση ελέγχει την πρόσβαση στον βρόχο. Όσο η προϋπόθεση είναι αληθής, ο βρόχος συνεχίζεται. Μόλις η κατάσταση αξιολογηθεί ως ψευδής, ο βρόχος εξέρχεται.
-
Ένας τροποποιητής: Πρέπει να τροποποιήσετε με κάποιο τρόπο την τιμή της μεταβλητής φρουράς. Είναι σημαντικό ότι η δήλωση τροποποίησης συμβαίνει κάπου μέσα στο βρόχο. Σε ένα for loop, σχεδόν πάντα προσθέτετε ή αφαιρείτε για να τροποποιήσετε μια μεταβλητή. Σε έναν βρόγχο while, οποιοδήποτε είδος εντολής εκχώρησης μπορεί να χρησιμοποιηθεί για να τροποποιήσει τη μεταβλητή.
για τους βρόχους είναι λίγο πιο ασφαλείς από ότι για τους βρόχους επειδή η δομή του βρόχου απαιτεί να σκεφτείτε την εκκίνηση, την κατάσταση και την τροποποίηση. Και οι τρεις λειτουργίες είναι ενσωματωμένες στη δήλωση. Η εντολή while απαιτεί μόνο την προϋπόθεση. Αυτό μπορεί να σας κάνει να νομίζετε ότι δεν χρειάζεστε τα άλλα μέρη, αλλά αυτό θα ήταν επικίνδυνο.
Σε οποιοδήποτε είδος βρόχου, πρέπει να αρχικοποιήσετε τη μεταβλητή φρουράς και να τροποποιήσετε την τιμή της. Με τον loop while, είστε υπεύθυνοι για την προσθήκη αυτών των λειτουργιών από μόνοι σας. Εάν δεν το κάνετε αυτό θα προκαλέσει ατελείωτες βρόχους ή βρόχους που δεν θα συμβούν ποτέ.
Ρίξτε μια ματιά στον παρακάτω κώδικα για λίγο. php πρόγραμμα για να δείτε πώς λειτουργεί:
ενώ. php img {ύψος: 40px; πλάτος: 50px;}Παιχνίδι Ζαριέρας 2
Καλώς ήλθατε στο παιχνίδι με ζάρια. Δείτε πόσα ρολά χρειάζεστε για να πάρετε έξι!
php $ userNumber = 999; $ counter = 0; ενώ ($ userNumber! = 6) {$ userNumber = rand (1, 6); print <<< εδώ ΕΔΩ; $ counter ++?} print "Χρειάστηκαν μετρητές $ να προσπαθήσουν να πάρουν έξι
";; >Προσπαθήστε ξανά!
Αυτό το παράδειγμα δείχνει πόσο λεπτό μπορούν να είναι οι βρόχοι. Όλα τα βασικά στοιχεία υπάρχουν, αλλά δεν έχουν όλοι εμφάνιση ως μέρος του loop while.
-
Αρχικοποιήστε $ userNumber.
Για αυτόν τον βρόχο, το $ userNumber είναι η μεταβλητή φρουρός.Η αρχικοποίηση πρέπει να εγγυηθεί ότι ο βρόχος τρέχει ακριβώς μία φορά. Επειδή η συνθήκη θα είναι ($ userNumber! = 6), θα πρέπει να δώσετε $ userNumber μια τιμή που σαφώς δεν είναι 6. Το 999 θα κάνει τη δουλειά και είναι αρκετά άγρια για να είναι σαφώς εκτός εμβέλειας.
Παρόλο που το βήμα αρχικοποίησης εμφανίζεται στον κώδικα πριν από τον βρόχο, είναι συχνά καλύτερο να ξεκινήσετε με την κατάστασή σας και, στη συνέχεια, να δημιουργήσετε αντίγραφο ασφαλείας μιας γραμμής για την προετοιμασία επειδή το βήμα αρχικοποίησης εξαρτάται από την κατάσταση.
-
Ρυθμίστε την κατάσταση.
Σκεφτείτε τι θα πρέπει να κάνει ο βρόχος να συνεχίσει ή να σταματήσει. Θυμηθείτε ότι η συνθήκη εξηγεί πότε συνεχίζεται ο βρόχος. Είναι συχνά πιο εύκολο να σκεφτούμε τι προκαλεί την έξοδο του βρόχου. Είναι εντάξει; Απλά αντιστρέψτε το. Για παράδειγμα, αν θέλετε να κλείσετε το βρόχο όταν το $ userNumber είναι ίσο με 6, τότε θα το έχετε συνεχίσει όσο το $ userNumber! = 6.
-
Τροποποιήστε τον φρουρό.
Αυτό είναι δύσκολο. Σε αυτό το συγκεκριμένο παράδειγμα, τροποποιήστε την μεταβλητή φρουρού με ένα νέο τυχαίο αριθμό: $ userNumber = rand (1, 6). Συχνά σε ένα βρόχο while, το βήμα τροποποίησης είναι εγγενές στο πρόβλημα που επιλύετε. Μερικές φορές παίρνετε τη νέα τιμή από το χρήστη, μερικές φορές το παίρνετε από ένα αρχείο ή μια βάση δεδομένων, ή μερικές φορές απλώς προσθέτετε (ακριβώς όπως ένα for loop).
Το κλειδί εδώ είναι να διασφαλίσετε ότι έχετε μια δήλωση που τροποποιεί την μεταβλητή φρουράς και ότι η κατάσταση μπορεί να ενεργοποιηθεί. Για παράδειγμα, η χρήση $ userNumber = rand (1, 5) θα οδηγούσε σε έναν ατελείωτο βρόχο επειδή το $ userNumber δεν θα μπορούσε ποτέ να είναι 6.
ενώ οι βρόχοι μπορούν να προκαλέσουν πολλά προβλήματα επειδή μπορεί να προκαλέσουν λογικά σφάλματα. Δηλαδή, η σύνταξη (δομή και ορθογραφία του κώδικα) μπορεί να είναι ωραία, αλλά το πρόγραμμα εξακολουθεί να μην λειτουργεί σωστά. Σχεδόν πάντα, το πρόβλημα μπορεί να επιλυθεί με το να σκεφτούμε αυτά τα τρία μέρη ενός καλά συμπεριφερόμενου βρόχου: Αρχικοποιήστε τον φρουρό, δημιουργήστε μια ουσιαστική συνθήκη και τροποποιήστε κατάλληλα τον φρουρό.