>> ΟΜΙΛΗΤΗΣ: Ας εφαρμόσουν ένα πρόγραμμα που ζητά από το χρήστη για έναν ακέραιο αριθμό
αλλά συνεχίζει προτρέποντας τους για άλλη ακέραιο μέχρι
ότι ακέραιος είναι θετική.
Λοιπόν, ας το γράψω αυτό, περιλαμβάνουν cs50.h, περιλαμβάνει τις τυποποιημένες io dot h, int
κύρια [κενό].
Τώρα, ας αρχίσει πραγματικά να ζητήσει από το χρηστών για αυτή την ακέραιος, διατηρώντας παράλληλα σε
νου ότι θέλουμε να reprompt τους μέχρι την
αριθμός είναι πράγματι θετικά.
>> Γι 'αυτό θα ήθελα κάποια looping κατασκευή, αλλά μια θηλιά που εκτελεί σε
τουλάχιστον μία φορά.
Και υπενθυμίζουν το do-while loop επιτρέπει μας να κάνουμε ακριβώς αυτό.
Ας κωδικοποιήσει αυτό επάνω.
>> Ας πρώτα δηλώνουμε μια int - Θα αποκαλούν n - στην οποία αποθηκεύεται η
ακέραιος χρήστη.
Ας κάνουμε τώρα το εξής.
Printf, παρακαλώ να μου δώσει μια θετική int.
Ας τώρα να πάρει ότι int χρήση GetInt της βιβλιοθήκης CS50
λειτουργία, n παίρνει GetInt.
Και τώρα είμαστε κάνει να κάνει κάτι, αλλά θα πάμε να θέλουν να κάνουν αυτό
ενώ n είναι -
τι; -
λιγότερο από το 1, αν όντως θέλουν ένα θετικό ακέραιο.
>> Ας πάμε μπροστά τώρα και να εκτυπώσετε.
Αν όλα είναι καλά, ευχαριστώ για τη θετική int,
ερωτηματικό, αποθηκεύστε το αρχείο.
Ας δούμε τώρα μεταγλώττιση και εκτέλεση.
>> Κάντε θετικές κάθετο dot θετική.
Και τώρα είμαι να ζητηθεί για μια θετική int.
Επιτρέψτε μου να συνεργαστεί με 1.
Ευχαριστώ για τη θετική int.
>> Ας επαναληφθεί τώρα αυτό το πρόγραμμα και δεν συνεργάζονται.
Παρακαλώ να μου δώσετε μια θετική int.
Πώς σχετικά με τις αρνητικές 1;
Ενδιαφέρουσες.
Το πρόγραμμα έχει ήδη reprompted μου για έναν int.
>> Ας είναι ελαφρώς πιο δύσκολα με 0.
Ακόμα δεν είναι μια θετική int, οπότε ας συνεργάζονται και αυτή τη φορά
παρέχουν, και πάλι, 1.
Ευχαριστώ για τη θετική int.
>> Τώρα είναι σημαντικό να σημειωθεί ότι I δηλωθεί μεταβλητή n μου στη γραμμή 6,
έξω από το do-while loop.
Αν είχα αντί δηλωθεί n μέσα μου do-while loop, ειδικά για, ας πούμε,
γραμμή 10, όπου επίσης να πάρετε το int από ο χρήστης, ότι int n θα έχει μόνο
υπήρχαν εντός των ορίων της σγουρά στηρίγματα που βρίσκονται επί του παρόντος
γραμμή 8 και στη γραμμή 11.
>> Με άλλα λόγια, το η θα πρέπει να scoped το εσωτερικό της do-while loop.
Αλλά το πρόβλημα είναι ότι εμείς θέλετε να χρησιμοποιήσετε n στη γραμμή 12
εσωτερικό του κατάσταση.
Έτσι, ακόμη κι αν δεν είναι και τόσο αρκετά, είναι πολύ σκόπιμη η
n κηρύσσεται εκτός αυτός ο βρόχος do-while.