1 00:00:00,000 --> 00:00:00,330 2 00:00:00,330 --> 00:00:03,230 >> ΟΜΙΛΗΤΗΣ: Ας εφαρμόσουν ένα πρόγραμμα που ζητά από το χρήστη για έναν ακέραιο αριθμό 3 00:00:03,230 --> 00:00:05,850 αλλά συνεχίζει προτρέποντας τους για άλλη ακέραιο μέχρι 4 00:00:05,850 --> 00:00:07,590 ότι ακέραιος είναι θετική. 5 00:00:07,590 --> 00:00:16,760 Λοιπόν, ας το γράψω αυτό, περιλαμβάνουν cs50.h, περιλαμβάνει τις τυποποιημένες io dot h, int 6 00:00:16,760 --> 00:00:18,010 κύρια [κενό]. 7 00:00:18,010 --> 00:00:20,000 8 00:00:20,000 --> 00:00:23,200 Τώρα, ας αρχίσει πραγματικά να ζητήσει από το χρηστών για αυτή την ακέραιος, διατηρώντας παράλληλα σε 9 00:00:23,200 --> 00:00:25,570 νου ότι θέλουμε να reprompt τους μέχρι την 10 00:00:25,570 --> 00:00:26,860 αριθμός είναι πράγματι θετικά. 11 00:00:26,860 --> 00:00:30,160 >> Γι 'αυτό θα ήθελα κάποια looping κατασκευή, αλλά μια θηλιά που εκτελεί σε 12 00:00:30,160 --> 00:00:31,200 τουλάχιστον μία φορά. 13 00:00:31,200 --> 00:00:34,810 Και υπενθυμίζουν το do-while loop επιτρέπει μας να κάνουμε ακριβώς αυτό. 14 00:00:34,810 --> 00:00:36,140 Ας κωδικοποιήσει αυτό επάνω. 15 00:00:36,140 --> 00:00:39,210 >> Ας πρώτα δηλώνουμε μια int - Θα αποκαλούν n - στην οποία αποθηκεύεται η 16 00:00:39,210 --> 00:00:41,030 ακέραιος χρήστη. 17 00:00:41,030 --> 00:00:44,250 Ας κάνουμε τώρα το εξής. 18 00:00:44,250 --> 00:00:51,292 Printf, παρακαλώ να μου δώσει μια θετική int. 19 00:00:51,292 --> 00:00:54,470 Ας τώρα να πάρει ότι int χρήση GetInt της βιβλιοθήκης CS50 20 00:00:54,470 --> 00:00:59,110 λειτουργία, n παίρνει GetInt. 21 00:00:59,110 --> 00:01:02,610 Και τώρα είμαστε κάνει να κάνει κάτι, αλλά θα πάμε να θέλουν να κάνουν αυτό 22 00:01:02,610 --> 00:01:04,580 ενώ n είναι - 23 00:01:04,580 --> 00:01:05,480 τι; - 24 00:01:05,480 --> 00:01:09,370 λιγότερο από το 1, αν όντως θέλουν ένα θετικό ακέραιο. 25 00:01:09,370 --> 00:01:11,670 >> Ας πάμε μπροστά τώρα και να εκτυπώσετε. 26 00:01:11,670 --> 00:01:17,590 Αν όλα είναι καλά, ευχαριστώ για τη θετική int, 27 00:01:17,590 --> 00:01:19,360 ερωτηματικό, αποθηκεύστε το αρχείο. 28 00:01:19,360 --> 00:01:21,480 Ας δούμε τώρα μεταγλώττιση και εκτέλεση. 29 00:01:21,480 --> 00:01:25,550 >> Κάντε θετικές κάθετο dot θετική. 30 00:01:25,550 --> 00:01:27,470 Και τώρα είμαι να ζητηθεί για μια θετική int. 31 00:01:27,470 --> 00:01:29,630 Επιτρέψτε μου να συνεργαστεί με 1. 32 00:01:29,630 --> 00:01:31,330 Ευχαριστώ για τη θετική int. 33 00:01:31,330 --> 00:01:33,650 >> Ας επαναληφθεί τώρα αυτό το πρόγραμμα και δεν συνεργάζονται. 34 00:01:33,650 --> 00:01:35,260 Παρακαλώ να μου δώσετε μια θετική int. 35 00:01:35,260 --> 00:01:37,300 Πώς σχετικά με τις αρνητικές 1; 36 00:01:37,300 --> 00:01:37,910 Ενδιαφέρουσες. 37 00:01:37,910 --> 00:01:40,460 Το πρόγραμμα έχει ήδη reprompted μου για έναν int. 38 00:01:40,460 --> 00:01:43,170 >> Ας είναι ελαφρώς πιο δύσκολα με 0. 39 00:01:43,170 --> 00:01:46,310 Ακόμα δεν είναι μια θετική int, οπότε ας συνεργάζονται και αυτή τη φορά 40 00:01:46,310 --> 00:01:48,280 παρέχουν, και πάλι, 1. 41 00:01:48,280 --> 00:01:49,990 Ευχαριστώ για τη θετική int. 42 00:01:49,990 --> 00:01:54,300 >> Τώρα είναι σημαντικό να σημειωθεί ότι I δηλωθεί μεταβλητή n μου στη γραμμή 6, 43 00:01:54,300 --> 00:01:56,510 έξω από το do-while loop. 44 00:01:56,510 --> 00:02:01,030 Αν είχα αντί δηλωθεί n μέσα μου do-while loop, ειδικά για, ας πούμε, 45 00:02:01,030 --> 00:02:06,230 γραμμή 10, όπου επίσης να πάρετε το int από ο χρήστης, ότι int n θα έχει μόνο 46 00:02:06,230 --> 00:02:09,904 υπήρχαν εντός των ορίων της σγουρά στηρίγματα που βρίσκονται επί του παρόντος 47 00:02:09,904 --> 00:02:12,320 γραμμή 8 και στη γραμμή 11. 48 00:02:12,320 --> 00:02:16,570 >> Με άλλα λόγια, το η θα πρέπει να scoped το εσωτερικό της do-while loop. 49 00:02:16,570 --> 00:02:20,390 Αλλά το πρόβλημα είναι ότι εμείς θέλετε να χρησιμοποιήσετε n στη γραμμή 12 50 00:02:20,390 --> 00:02:21,900 εσωτερικό του κατάσταση. 51 00:02:21,900 --> 00:02:26,120 Έτσι, ακόμη κι αν δεν είναι και τόσο αρκετά, είναι πολύ σκόπιμη η 52 00:02:26,120 --> 00:02:28,210 n κηρύσσεται εκτός αυτός ο βρόχος do-while. 53 00:02:28,210 --> 00:02:29,838