Εντάξει.
Έτσι τώρα ας μιλήσουμε για κάτι πραγματικά χρήσιμο σε programming--
υπό όρους δηλώσεις.
Έτσι, υπό όρους εκφράσεις επιτρέπουν τα προγράμματά σας
να λαμβάνουν αποφάσεις και διαφορετικές πιρούνια στο δρόμο, κάτι
Αναφέρθηκα λίγο νωρίτερα, ανάλογα με τις τιμές των μεταβλητών,
ή με βάση αυτά που εισάγει ο χρήστης σε ο προγραμματιστής, στη γραμμή εντολών,
ή εάν έχετε μια ερώτηση ή κάτι τέτοιο.
C έχει μια-δυο διαφορετικούς τρόπους για να εκφράζουν εκφράσεις συνθήκης, η οποία
Επίσης, μερικές φορές θα καλέσει μια υπό όρους υποκατάστημα στα προγράμματά σας.
Και ορισμένα από αυτά πρόκειται να εξετάσουμε πολύ γνωστά σε σας από το μηδέν,
έτσι θα τους τραβήξει ακόμη επάνω δίπλα-δίπλα, μόλις
μπορείτε να κάνετε αυτή την αναλογία στο κεφάλι σας.
>> Έτσι, if-- αν είναι αρκετά απλή προϋπόθεση.
Αν θυμάστε από το μηδέν στα δεξιά εδώ
θα μπορούσατε να συμπληρώσετε ότι είναι εξάγωνο με μπλε έκφραση εάν το ποντίκι προς τα κάτω
ή εάν το χ είναι μικρότερο από 10, ή κάτι τέτοιο.
Και στη συνέχεια, αν x ήταν μικρότερη από 10, ή εάν το ποντίκι ήταν στην πραγματικότητα, κάτω,
το σύνολο του κώδικα μέσα του κομμάτι του παζλ θα εκτελέσει.
Όλα τα πράγματα που ταιριάζουν μέσα σε αυτό το σχήμα C.
>> Ομοίως, έχουμε εάν στα αριστερά εκεί.
Αν Boolean έκφραση, το οποίο είμαι απλά χρησιμοποιώντας
ως υποκατάστατο για μια από τις Boolean εκφράσεις συζητήσαμε προηγουμένως,
ανοιχτή σγουρά τιράντες, κοντά σγουρά στήριγμα.
Έτσι σκεφτείτε ανοικτών σγουρά τιράντες και κλειστά σγουρά τιράντες
ως ένα είδος ανάλογο με την σάντουιτς επίδραση του αν μπλοκ στη δεξιά
από την αρχή.
>> Αν η λογική έκφραση στο αν η δήλωση είναι αληθινή,
τότε όλες οι γραμμές του κώδικα μεταξύ των άγκιστρα
θα εκτελέσει προκειμένου από την κορυφή προς τα κάτω.
Αν η λογική έκφραση είναι ψευδής, θα
υπερπηδήσει τα πάντα στο μεταξύ τα άγκιστρα, γιατί μόνο
θέλουν να πάνε προς αυτή την διακλάδωση του δρόμου αν το Boolean έκφραση είναι αληθής.
>> Μπορούμε να πάρουμε αυτό το ένα βήμα περαιτέρω, εάν άλλο.
Έτσι, αυτό το μπλοκ είναι Ξυστό αρκετά παρόμοιο με εκείνο
είδαμε μόλις πριν από ένα δευτερόλεπτο, εκτός παίρνει δύο διαφορετικές διαδρομές με βάση
για το τι θα συμβεί.
Έτσι, αν το ποντίκι ήταν κάτω, ή εάν x ήταν μικρότερη από 10,
θα κάνουμε ό, τι είναι στο μεταξύ ότι πρώτη διακλάδωση, ότι το πρώτο Γ,
>> Διαφορετικά, αν το ποντίκι είναι επάνω ή το χ είναι όχι λιγότερο από 10,
θα κάνουμε ό, τι στο δεύτερο σετ.
Και αυτό είναι ανάλογο με αυτό που βλέπετε εδώ για έκφραση C. Αν Boolean,
κάνει τα πράγματα μεταξύ των πρώτο σετ αγκύλες.
Αλλιώς, κάνει τα πράγματα μεταξύ των Δεύτερη δέσμη αγκύλες.
Έτσι, αν το Boolean έκφραση είναι αληθής, θα
κάνει ό, τι είναι μεταξύ του πρώτου σετ.
Αν η λογική έκφραση είναι ψευδείς, ότι θα προκαλέσει το άλλο,
και εμείς θα κάνουμε ό, τι στην η δεύτερη ομάδα αγκύλες.
Και πάλι, πάνω προς τα κάτω, όλα γραμμές ανάμεσα στις αγκύλες.
>> Στην C, είναι δυνατόν να δημιουργηθούν ένα if-else if-else αλυσίδας.
Στην πραγματικότητα, μπορείτε να έχετε αν-else if-else αν-άλλο, αν, και ούτω καθεξής και ούτω καθεξής και ούτω
σχετικά.
Στην αρχή, αυτό που απαιτείται φωλιάζουν τα μπλοκ.
Μπορείτε να προσθέσετε ένα αν-άλλο, και θα έπρεπε να να θέσει ένα άλλο στο εσωτερικό του άλλου,
και ούτω καθεξής, και πήρε το είδος των ένθετων και περίπλοκη.
Αλλά C, δεν έχουμε να το κάνουμε αυτό.
Μπορούμε πραγματικά να έχουμε μόνο αυτό είναι μια αλυσίδα σαν αυτό.
Και πάλι, όπως μπορείτε να φανταστείτε, όλα αυτοί οι κλάδοι είναι αμοιβαία αποκλειόμενες.
Μπορείτε να πάτε μόνο ποτέ κάτω από ένα του υποκαταστήματος.
Εάν αυτό είναι αλήθεια.
Διαφορετικά, αν αυτό είναι αλήθεια.
Σε αντίθετη περίπτωση, το κάνετε αυτό.
Έτσι, οι τέσσερις από τους κλάδους σε αυτό παράδειγμα είναι αμοιβαία αποκλειόμενες.
Είναι ένα if-else if-else αλυσίδας.
>> Είναι δυνατόν όμως, και μερικές φορές πολύ χρήσιμο,
για να δημιουργήσουν μια αλυσίδα δεν αλληλοαναιρούνται υποκαταστήματα.
Σε αυτό το παράδειγμα, μόνο η τρίτη και τέταρτο κλάδοι είναι αμοιβαία αποκλειόμενες.
Θα μπορούσε να είναι ότι θα μπορούσατε πληροί την πρώτη προϋπόθεση,
και θα μπορούσε να ικανοποιήσει η δεύτερη προϋπόθεση,
και θα μπορούσε να ικανοποιήσει το condition-- τρίτη περίπτωση στην οποία
θα πάει κάτω από το πρώτο του τραπεζικό κατάστημα, τότε θα πάει κάτω από ένα δεύτερο σκέλος,
τότε θα πάει κάτω από το τρίτο σκέλος.
Ή ίσως πληρούν την πρώτη κατάσταση, και η δεύτερη προϋπόθεση,
αλλά δεν πληροίτε η τρίτη προϋπόθεση.
Σε αυτή την περίπτωση μπορείτε να πάτε κάτω από το πρώτο υποκατάστημα και το δεύτερο σκέλος,
και, στη συνέχεια, το τέταρτο σκέλος,
>> Ο λόγος για αυτό είναι ότι ο άλλος θα δεσμεύονται μόνο στο πλησιέστερο αν.
Έτσι, ακόμη κι αν υπάρχει ένα άλλο εδώ, ότι
δεν σημαίνει κατ 'ανάγκη να δημιουργήσει μια αμοιβαία αποκλειστική αλυσίδα των πάντων.
Είναι μόνο η έκφραση εκεί με Boolean
3-- έκφραση αυτή είναι η αλληλοαναιρούνται με το άλλο.
Έτσι είναι δυνατόν, και μερικές φορές αρκετά χρήσιμο,
όπως είπα, να δημιουργήσει μια αλυσίδα δεν αλληλοαποκλείονται κλάδων.
Ας ρίξουμε μια ματιά σε ένα διαφορετικό είδος υπό όρους, η οποία
δεν έχετε ξαναδεί στο Scratch.
Υπάρχει κάτι που ονομάζεται η δήλωση switch.
Η δήλωση switch είδος τακτοποιημένο, επειδή είναι
μια συνθήκη που επιτρέπει μπορείτε να καθορίσετε διαφορετικές περιπτώσεις,
αντί να βασίζονται σε Boolean εκφράσεις για να πάρουν αποφάσεις για σας.
Έτσι, για παράδειγμα, ας πούμε ότι έχω αυτό το πρόγραμμα,
και ρωτάω τον χρήστη να παρέχουν στοιχεία για μένα.
Έτσι λέω, int x = Πάρτε Int (), και αν δεν είστε εξοικειωμένοι ακόμα,
πάρετε int είναι μια λειτουργία που είναι περιλαμβάνεται επίσης στη βιβλιοθήκη CS50,
οπότε αν #include CS50.H θα έχετε Αποκτήστε πρόσβαση σε Int () και όλα της
cousins-- GetFloat, GetString, και ούτω καθεξής.
Ουσιαστικά κανείς να πάρει για κάθε λειτουργία τύπο δεδομένων που έχουμε ήδη συζητήσει.
>> Έτσι int x ισούται με GetInt.
Βασικά αυτό που συμβαίνει είναι ότι είμαι στο τερματικό.
Ρωτάω τον χρήστη να πληκτρολογήσει έναν αριθμό.
>> Και εδώ είμαι μεταγωγής τι κάνω, ανάλογα
σχετικά με αυτό που ο χρήστης πληκτρολογήσει στη γραμμή.
Έτσι, αν πληκτρολογήσει κάποιος, να τυπώσω ένα.
Και τότε θα σπάσει.
Αν πληκτρολογήσετε δύο, να τυπώσω δύο.
Και τότε θα σπάσει.
Είναι σημαντικό να διάλειμμα ανάμεσα σε κάθε περίπτωση,
γιατί αλλιώς θα πέσετε μέσα.
Έτσι, αν δεν είχα οποιαδήποτε διαλείμματα εκεί, και ο χρήστης
δακτυλογραφημένα μία, τι θα συμβεί είναι ότι Θα εκτυπώσετε ένα, δύο, τρία, συγγνώμη.
Αυτό είναι το είδος περίεργης συμπεριφοράς, έτσι δεν είναι;
Μπορεί να σκέφτονται έτσι.
Αλλά υπάρχουν πράγματι κάποιες περιπτώσεις Αυτό θα μπορούσε να είναι ένα πολύ χρήσιμο πράγμα.
Έτσι, εδώ είναι ένα άλλο παράδειγμα ενός διακόπτη δήλωση όπου θα παραλείψουμε τα διαλείμματα.
Αλλά το κάνω επίτηδες.
>> Έτσι τι συμβαίνει εδώ;
Σκεφτείτε για ένα δευτερόλεπτο.
Μπορείτε ακόμη και να θελήσετε να διακόψετε το βίντεο.
>> Τι συμβαίνει εδώ αν ο χρήστης τέσσερα;
Έτσι έχω ζητήσει από το χρήστη για την είσοδο.
Και παρέχει την τιμή 4.
Τι θα εκτυπωθεί όταν το κάνω αυτό;
Από την προηγούμενη διαφάνεια, υπήρχαν διαλείμματα μεταξύ όλων των περιπτώσεων.
Και γι 'αυτό θα ήταν απλά εκτυπώσετε τέσσερις και στη συνέχεια να σταματήσει.
Αλλά στην περίπτωση αυτή, δεν θα.
Τι θα συμβεί είναι να θα πέσει μέσα από κάθε περίπτωση.
>> Έτσι, σε αυτή την περίπτωση έχω υποθέσεις οργανωμένου μου κατά τέτοιο τρόπο ώστε αν ο χρήστης πληκτρολογεί 4,
Θα εκτυπώσετε τέσσερα, τρία, δύο, το ένα, το ωστικό κύμα μακριά.
Και αν πληκτρολογήσει 5, θα ήθελα να ξεκινήσω σε πέντε και κάνουν το ίδιο πράγμα.
Αν πληκτρολογήσει 1, θα ήθελα απλά κάντε ένα, έκρηξη μακριά.
>> Έτσι, σε αυτή την περίπτωση, είμαι με τη χρήση ένας διακόπτης είδος έξυπνα έτσι
ότι εγώ σκοπεύω να πέσει σε όλες τις περιπτώσεις.
Αλλά γενικά είστε κατά πάσα πιθανότητα θα το θέλουν να σπάσουν μεταξύ όλων αυτών,
αν δεν έχετε μια κατάσταση όπως αυτό όπου είστε
το είδος της μόχλευσης το γεγονός ότι θα πέφτουν μέσα από τις περιπτώσεις χωρίς διακοπή.
Έτσι, αυτό είναι το δεύτερο από τα σημαντικότερα τύπους όρους δηλώσεις.
Η τελευταία εκ των οποίων είναι:; Γι 'αυτό και έχουν δύο τμήματα κώδικα C εδώ.
Ένα στα αριστερά και μία στα δεξιά.
Το ένα στα αριστερά θα πρέπει να πιθανόν να είναι αρκετά γνωστά σε σας.
>> Έχω int x.
Και εγώ κατά πάσα πιθανότητα θα πρέπει να ζήτησαν από τον χρήστη
for-- αυτό θα πρέπει μάλλον να είναι int x ισούται GetInt, ή κάτι τέτοιο.
Και τότε κάνω μια απόφαση.
Εάν κάποια λογική έκφραση είναι αλήθεια, να ορίσετε την τιμή x 5.
Σε αντίθετη περίπτωση, να ορίσετε την τιμή x 6.
>> Αυτό που η αριστερά θα μπορούσε πιθανότατα να είναι αρκετά εξοικειωμένοι από τη συζήτηση μας
Αν από τα υπόλοιπα μόλις πριν από μια στιγμή.
Θα εκπλαγείτε να ξέρετε ότι η γραμμή σχετικά με το δικαίωμα
κάνει ακριβώς το ίδιο πράγμα;
>> Έτσι, αυτό ονομάζεται:; ή μερικές φορές κάλεσε το τριαδικό φορέα.
Και είναι αρκετά δροσερό.
Είναι συνήθως χρησιμοποιείται ως ένα χαριτωμένο τέχνασμα.
>> Αλλά αυτό που σας επιτρέπει να κάνετε είναι να προσομοίωση Εάν άλλος με πολύ μικρές,
πραγματικά επιπόλαια σύντομο υπό όρους υποκαταστημάτων.
Μπορείτε γενικά δεν θα χρησιμοποιήσει: αν είχε έξι γραμμές κώδικα ανάμεσα σε κάθε σετ
του άγκιστρα.
Αλλά αν είστε απλά κάνοντας μια γρήγορη απόφαση,
αν θέλει κάποιος να κάνει ένα πράγμα ή το άλλο και είναι πολύ απλό,
αυτό μπορεί να είναι ένα παράδειγμα του πώς να το κάνει με: τον τριαδικό φορέα.
Έτσι int x ισούται με την έκφραση;
Το πράγμα μετά την ερώτηση σήμα είναι αυτό του Χ τιμή
θα είναι αν η έκφραση είναι αληθής.
>> Το πράγμα μετά την του παχέος εντέρου είναι ό, τι τιμή του x
θα ήταν αν η έκφραση ήταν ψευδείς.
Έτσι είμαι εγώ ζητώντας, είναι η έκφραση αλήθεια;
Αν είναι, να ορίσετε την τιμή x 5.
Αν δεν είναι, να ορίσετε την τιμή x 6.
Και πάλι, όπως είπα.
Αυτό είναι συνήθως απλά ένα χαριτωμένο τέχνασμα.
Και μερικές φορές, αν γίνει πραγματικά άνετα με αυτό,
θα το κάνετε αυτό, διότι φαίνεται είδος δροσερό στα προγράμματά σας.
Σε γενικές γραμμές είμαι αυτό που παρουσιάζω μπορείτε τώρα ώστε να είστε εξοικειωμένοι με αυτό
αν το δείτε.
Αλλά σίγουρα ξέρω ότι δεν έχετε να το γράψει σε καμία από κωδικό σας.
Αλλά είναι κάτι που πρέπει να γνωρίζει, γιατί θα συναντήσετε σίγουρα
αποσπάσματα του κώδικα εδώ και εκεί όπου αυτό:? σύνταξη,
AKA τριμερούς χειριστή, χρησιμοποιείται.
>> Έτσι γρήγορη περίληψη Ποιες είναι υποθετικοί,
και ποιες είναι οι επιλογές είναι διαθέσιμες σε εσάς Γ Έχετε Αν και αν-else,
και αν αλλιώς αν, κλπ.
Μπορείτε να χρησιμοποιήσετε το Boolean εκφράσεις για εκείνους να πάρουν αποφάσεις.
>> Με τις δηλώσεις του διακόπτη, μπορείτε να χρησιμοποιήσετε διακριτές περιπτώσεις για τη λήψη αποφάσεων.
Θα πω συγκεκριμένα, αν είναι ένα, ή αν είναι δύο, ή αν είναι τρεις,
Θα κάνω αυτό το πράγμα, ή αυτό το πράγμα, ή αυτό το πράγμα.
Και: μπορεί να χρησιμοποιηθεί για να αντικαταστήσει πολύ απλό, αν-άλλος υποκαταστήματα,
ή αν-άλλος αλυσίδες να κάνουν κωδικό σας φαίνονται λίγο φανταχτερό.
>> Είμαι ο Νταγκ Lloyd.
Και αυτό είναι CS50.