[Powered by Google Translate] TOMMY MACWILLIAM: Ας μιλήσουμε για βρόχους, ένα από τα κοινά
προγραμματισμού κατασκευάζει θα δούμε όλη CS50.
Θα χρησιμοποιήσουμε βρόχους, όταν θέλουμε να εκτελέσει μια
καθήκον περισσότερο από μία φορά.
Για παράδειγμα, θα μπορούσαμε να θέλετε να εκτυπώσετε "γεια" 100 φορές ή εκτύπωσης
από όλα τα γράμματα του αλφαβήτου.
Και στις δύο αυτές περιπτώσεις, έχουμε ένα πράγμα που θέλουμε να κάνουμε
πολλές φορές, να εκτυπώσετε κάτι.
Ωστόσο, αυτό που εκτυπώνει κάθε φορά μπορεί να ποικίλει.
Έτσι, μπορούμε να κάνουμε κάτι διαφορετικό για κάθε
επανάληψη, ή να τρέξει μέσω του βρόχου.
Θα δούμε τρεις διαφορετικούς τύπους των βρόχων σε C, ενώ
βρόχους, για βρόχους, και να κάνει, ενώ βρόχοι.
Αν και αυτοί οι τρεις τύποι των βρόχων έχουν διαφορετική σύνταξη,
οι ιδέες πίσω τους είναι η ίδια.
Θα καθορίσει κάποια μπλοκ του κώδικα μέσα σε αγκύλες,
ονομάζεται το σώμα του βρόχου, που θέλουμε να εκτελεστεί
μερικές φορές.
Με την αλλαγή των τιμών των μεταβλητών που χρησιμοποιούνται στο σώμα, εμείς
μπορεί να κάνει βρόχο μας να κάνουμε κάτι διαφορετικό κάθε φορά που τρέχει.
Με κάθε βρόχο που γράφουμε, θα πρέπει επίσης να αποφασίσει, όταν η
loop θα σταματήσει να λειτουργεί.
Αν δεν το κάνουμε αυτό, τότε ο υπολογιστής έμπιστος μας θα συνεχίσει
για να τρέξει αυτό το βρόχο μέχρι να σκοτώσει το πρόγραμμα.
Το Scratch, θα μπορούσαμε να χρησιμοποιήσουμε την επανάληψη n φορές
εμποδίσει να δημιουργήσετε ένα βρόχο.
Όλα τα κομμάτια μέσα σε ένα μπλοκ, που το εν λόγω επανάληψη 10
θα τρέξει 10 φορές.
Και τότε, εμείς θα προχωρήσουμε με τα κομμάτια μετά το βρόχο.
Έτσι κατάσταση στάση μας ήταν απλά, αυτό το μπλοκ έχει
τρέξει 10 φορές.
Ας αναδημιουργήσει αυτό το C. Για να εξασφαλιστεί Scratch
ότι εκτελούνται τα κομμάτια μέσα στο μπλοκ επανάληψη
ακριβώς 10 φορές, Ξυστό πρέπει να παρακολουθείτε κάθε
εκτέλεσης του μπλοκ επανάληψης.
Για να παρακολουθείτε πόσες φορές το σώμα βρόχου μας έχει
εκτελεστεί, ας δημιουργήσουμε μια μεταβλητή που ονομάζεται i.
Θα αρχίσω από το μηδέν, από το βρόχο μας
δεν έχει τρέξει ακόμα.
Καλά
Τώρα θα χρησιμοποιήσουμε τη λέξη-κλειδί, ενώ για να ξεκινήσει βρόχο μας.
Τώρα θα πρέπει να υπολογίσετε όταν βρόχο μας θα σταματήσει, αλλά
Ας αφήσουμε αυτό για τώρα και στη συνέχεια να επανέλθει σε αυτό.
Εντάξει.
Μέσα από βρόχου μας, ας εκτυπώσετε μόνο ένα μήνυμα έξω, όπως
"Γεια". Μπορούμε να χρησιμοποιήσουμε την λειτουργία printf για αυτό.
Εντάξει.
Έτσι τώρα θα καταγράψει ότι μια επανάληψη του βρόχου έχει σώμα
έχουν εκτελεστεί.
Μπορούμε να το κάνουμε αυτό με την προσθήκη 1, ή προσαύξηση, μετρητής μας
μεταβλητή, i.
Για να το κάνουμε αυτό, μπορούμε να πούμε i είναι ίσο με i συν 1 ή περισσότερα
απλά, θ συν συν.
Μεγάλη.
Έτσι, τώρα μπορούμε να δούμε ότι κάθε φορά που μας βρόχος εκτελείται, μας
μεταβλητή μετρητή ανεβαίνει κατά ένα.
Έτσι γνωρίζουμε ακριβώς πόσες επαναλήψεις που έχουμε τρέξει μέχρι τώρα.
Μετά από μία επανάληψη του βρόχου, αξία μας
του i θα είναι 1.
Μετά από δύο επαναλήψεις, θα είμαι 2.
Και μετά από 10 επαναλήψεις, θα είμαι 10.
Έτσι, αν θέλουμε να εκτελέσετε αυτό το βρόχο ακριβώς 10 φορές, τότε
αυτό είναι όταν θέλουμε να σταματήσουμε.
Έτσι, θέλουμε να εκτελέσετε αυτό το βρόχο, ενώ το i είναι μικρότερο από το 10, και
αυτό είναι ακριβώς αυτό που θα γράψω, ενώ θ
είναι μικρότερη από 10.
Αυτή η κατάσταση μοιάζει με τους όρους που χρησιμοποιούνται στην περίπτωση που
άλλο μπλοκ.
Μετά από το σώμα του βρόχου μας έχει εκτελεστεί, το πρόγραμμά μας
θα πηδήσει πίσω μέχρι την κατάσταση βρόχους.
Αν η συνθήκη είναι αληθής, τότε το σώμα του
loop θα τρέξει ξανά.
Εάν η κατάσταση δεν ισχύει πλέον, τότε βρόχο μας δεν θα είναι
τρέχουν πλέον και θα προχωρήσουμε στην επόμενη γραμμή του κώδικα
κάτω βρόχο μας.
Εντάξει.
Έτσι, ας ρίξουμε μια ματιά σε ένα δεύτερο τύπο
βρόχο, ο βρόχος for.
Δίπλα από τη λέξη-κλειδί, ενώ, σε παρένθεση, είχαμε ένα πράγμα,
η προϋπόθεση που απαιτείται για να είναι αληθινό για την
σώμα βρόχου για να τρέξει.
Αυτό σημαίνει ότι έπρεπε να δημιουργήσουμε μετρητή μεταβλητή μας έξω
του βρόχου και θυμηθείτε να το αυξήσετε σε κάποιο σημείο
εσωτερικό του βρόχου.
Η κεφαλίδα για μας για το βρόχο, από την άλλη πλευρά, έχει τρεις
μέρη, καθένα από τα οποία θα διαχωρίζονται με ελληνικό ερωτηματικό.
Στο πρώτο τρίτο μας, μπορούμε να δηλώσουμε οποιοδήποτε μετρητή ή βοηθός
μεταβλητές που θέλετε να χρησιμοποιήσετε σε βρόχο μας.
Στην πράξη, αυτό μπορεί να είναι πραγματικά χρήσιμη.
Πραγματικά δεν χρειάζεται αυτή τη μεταβλητή, i, ενώ μετά μας
βρόχος έχει τελειώσει, γι 'αυτό πραγματικά δεν θα πρέπει να το δηλώσουν
εκτός του βρόχου.
Το δεύτερο τρίτο θα είναι η κατάσταση που πρέπει να είναι αληθής
για το σώμα να εκτελεστεί και πάλι, όπως ακριβώς
βρόχο, ενώ σε μας.
Στο τελευταίο τρίτο μας, μπορούμε να τρέξουμε μια δήλωση που θα
εκτελούνται μετά από κάθε επανάληψη του βρόχου, έτσι δεν έχουμε
για να χτίσει μέσα στο σώμα βρόχου.
Ας γράψει ένα για βρόχο που μετρά αντίστροφα 5 - 1.
Θα ξεκινήσουμε με τη λέξη-κλειδί για.
Μπορούμε να δημιουργήσουμε μια μεταβλητή μετρητή πρώτο, τον οποίο και θα
ρυθμιστεί σε 5 αυτή τη φορά από τότε μετράμε τα κάτω,
ακολουθείται από μια άνω τελεία.
Επόμενη είναι η κατάσταση μας, το οποίο θα επανέλθω.
Τρίτον, θα θέλαμε να μειώσετε μετρητή μεταβλητή μας μετά
κάθε επανάληψη του βρόχου.
Έτσι, αντί να πει i συν συν, θα πω ότι μείον μείον.
Εντάξει.
Έτσι θέλουμε το σώμα βρόχο για να τρέξει, ενώ εξακολουθεί να είναι i
μεγαλύτερη από μηδέν.
Στο σώμα του βρόχου, ας εκτυπώνει την τιμή του i.
Για να γίνει αυτό, θα χρησιμοποιήσουμε τη συνάρτηση printf, χρησιμοποιώντας το% d
κράτησης θέσης.
Να θυμάστε, ότι η κράτηση θέσης θα αντικατασταθεί με το
τιμή του i.
Τέλος, ας προσθέσουμε μια δήλωση μετά μας για βρόχο.
Όταν εκτελέσετε αυτό το βρόχο, εγώ θα ξεκινήσει στις 5,
έτσι 5 θα εκτυπωθεί.
Μόλις φτάσει στο 0, η κατάσταση συνεχιστεί, i είναι
μεγαλύτερη από 0, δεν θα κρατήσει.
Έτσι βρόχο μας θα σταματήσει την εκτέλεση, και θα δούμε το
Δήλωση μετά το βρόχο.
Ας εκτελέσετε αυτόν τον κώδικα.
Κατ 'αρχάς, θα δημιουργηθεί ένα
countdown.c με κάνει αντίστροφη μέτρηση.
Τώρα, μπορούμε να εκτελέσετε αυτόν τον κώδικα με. / Αντίστροφη μέτρηση.
Και στις δύο βρόχους, ενώ και για βρόχους, συνέχεια μας
κατάσταση θα πρέπει να ελέγχονται πριν από το σώμα
της ο βρόχος εκτελείται.
Αυτό σημαίνει ότι, εάν η κατάστασή μας δεν είναι αρχικά
αλήθεια, τότε το σώμα του βρόχου μας ποτέ δεν θα τρέξει.
Έτσι, είναι μερικές φορές χρήσιμο να ελέγξετε την κατάσταση μετά την
σώμα του βρόχου και όχι πριν από αυτή.
Ας γράψει ένα βρόχο για να ζητήσει από το χρήστη για μια σειρά
έως ότου ένας θετικός αριθμός τροφοδοτείται.
Αν ο χρήστης εισάγει έναν αρνητικό αριθμό, θα ήθελα να τους ρωτήσω
για έναν άλλο αριθμό.
Γι 'αυτό και θα θέλετε αυτό το μήνυμα να είναι μέσα στο
σώματος από το βρόχο.
Ωστόσο, όταν ο βρόχος εκτελείται για πρώτη φορά, ο χρήστης
δεν μας έχει δώσει τον αριθμό ακόμα.
Γι 'αυτό δεν έχει νόημα να ελέγξετε αν είναι θετικό.
Αντ 'αυτού, θα θέλετε να ελέγξετε τον αριθμό μετά το σώμα της
ο βρόχος εκτελείται.
Μπορούμε να το κάνουμε αυτό με ένα do while loop.
Κατ 'αρχάς, θα δημιουργήσουμε μια μεταβλητή, n, που θα κρατήσει
εισόδου του χρήστη.
Τώρα θα χρησιμοποιήσουμε τη λέξη-κλειδί do, που ακολουθείται από άγκιστρα που
θα ξεκινήσει το σώμα του βρόχου μας.
Στο σώμα, μπορούμε να ζητήσει από το χρήστη για έναν αριθμό με το
GetInt λειτουργία.
Τώρα, θα ήθελα το σώμα του βρόχου να εκτελέσει ξανά αν
ο χρήστης πληκτρολογήσει έναν αρνητικό αριθμό, γι 'αυτό θα πω ενώ n
είναι μικρότερο από μηδέν.
Ανακοίνωση για το ερωτηματικό εδώ, μετά τη δήλωση λίγο.
Ας εκτελέσετε αυτόν τον κώδικα.
Κατ 'αρχάς, θα καταρτίσει αυτό με κάνει θετικό.
Τώρα μπορούμε να τρέξουμε το πρόγραμμα με. / Θετικές.
Αν έχουμε δώσει σε αυτό το πρόγραμμα έναν αρνητικό αριθμό, όπως το αρνητικό
4, τότε θα πρέπει να ζητηθεί εκ νέου για έναν αριθμό από το
κατάσταση του do μας, ενώ βρόχο ήταν αλήθεια.
Μόλις έχουμε δώσει ένα θετικό αριθμό, όπως και 8, τότε η
κατάσταση του do while loop μας δεν θα είναι πλέον να είναι αλήθεια.
Έτσι ο βρόχος δεν θα εκτελείται ξανά.
Και αυτό είναι αυτό για τους τρεις τύπους των βρόχων που θα χρησιμοποιήσουμε σε C.
Το όνομά μου είναι ο Tommy, και αυτό είναι CS50.