Bien.
Laissez donc maintenant parlons de quelque chose vraiment utile dans programming--
instructions conditionnelles.
Donc expressions conditionnelles permettre à vos programmes
de prendre des décisions et de prendre différentes bifurcations, quelque chose
Je l'ai mentionné plus tôt, en fonction des valeurs des variables,
ou sur la base de ce que les entrées de l'utilisateur à le programmeur, à la ligne de commande,
ou si vous avez une invite ou quelque chose comme ça.
C dispose d'un couple de différentes manières à exprimer des expressions conditionnelles, qui
nous allons aussi parfois appeler un branchement conditionnel dans vos programmes.
Et certains d'entre eux vont chercher assez familier pour vous à partir de zéro,
donc nous allons même les tirer côte à côte, il suffit
vous pouvez faire cette analogie dans votre tête.
>> Donc, si si-- est une jolie simples conditionnelle.
Si vous vous souvenez de rayure sur le droit ici
vous pouvez remplir ce est hexagone avec une expression bleu si la souris enfoncé
ou si x est inférieur à 10, ou quelque chose comme ça.
Et puis, si x est inférieur à 10, ou si la souris était en fait, vers le bas,
la totalité du code à l'intérieur de la pièce du puzzle pourrait agir.
Toutes les choses qui correspondent à à l'intérieur de cette forme de C.
>> De même, avons-nous si sur la gauche il.
Si l'expression booléenne, que je suis juste en utilisant
comme un substitut à l'un des booléenne expressions que nous avons précédemment discuté,
accolade ouverte, accolade à proximité.
Alors, pensez à bouclés ouverte accolade et accolade fermée
comme une sorte de sandwich analogue à effet de la si le bloc sur la droite
de rien.
>> Si l'expression booléenne dans l'instruction if est vrai,
puis toutes les lignes de code entre les accolades
exécutera afin du haut jusqu'en bas.
Si l'expression booléenne est fausse, nous allons
sauter par-dessus tout le reste les accolades, parce que nous ne
vouloir aller dans cette fourchette dans la route si l'expression booléenne est vraie.
>> Nous pouvons prendre cette première étape plus loin avec si d'autre.
Donc, ce bloc de Scratch est assez similaire à celui
nous avons vu il ya tout juste une seconde, à l'exception il faut deux chemins différents en fonction
sur ce qui se passe.
Donc, si la souris est en baisse, ou si x est inférieur à 10,
nous ferons tout ce qui est entre les deux cette première fourchette, que le premier C,
>> Dans le cas contraire, si la souris est jusqu'à, ou x est au moins 10,
nous ferons tout dans le deuxième set.
Et qui est analogue à ce que vous voyez ici pour l'expression C. Si booléenne,
faire les choses entre le premier jeu d'accolades.
Sinon, faire les choses entre le deuxième jeu d'accolades.
Donc, si l'opérateur booléen expression est vraie, nous allons
faire tout ce qui est entre le premier ensemble.
Si l'expression booléenne est faux, ce serait déclencher l'autre,
et nous ferions tout ce qui est en le deuxième jeu d'accolades.
Encore une fois, de haut en bas, tout lignes entre les accolades.
>> En C, il est possible de créer une autre chaîne si-si-else.
En fait, vous pouvez avoir si-else if-else if-else, si, et ainsi de suite et ainsi de suite et ainsi de
sur.
Dans Scratch, ce nécessaire emboîtement des blocs.
Vous ajouter une autre si, et vous avez dû mettre un autre à l'intérieur de l'autre,
et ainsi de suite, et il a obtenu genre de imbriquée et compliqué.
Mais C, nous ne disposons pas de le faire.
Nous pouvons en fait juste avoir ce soit une chaîne de ce type.
Encore une fois, comme vous vous en doutez, tous ces branches sont mutuellement exclusifs.
Vous ne pouvez jamais aller un bas de la branche.
Si cela est vrai.
Sinon, si cela est vrai.
Sinon, faire cela.
Donc, les quatre branches de cette exemple sont mutuellement exclusifs.
Il est une chaîne if-else if-else.
>> Il est cependant possible, et parfois très utile,
pour créer une chaîne de pas branches mutuellement exclusives.
Dans cet exemple, seule la troisième et quatrième branches sont mutuellement exclusifs.
Il se pourrait que vous pouviez satisfaire à la première condition,
et vous pourriez satisfaire la deuxième condition,
et vous pourriez satisfaire la troisième condition-- dans ce cas,
vous iriez en bas de la première branche, alors vous descendez une seconde branche,
alors vous voulez descendre la troisième branche.
Ou peut-être vous satisfaire à la première état et le second état,
mais vous ne remplissez pas la troisième condition.
Dans ce cas, vous descendez la première branche et la seconde branche,
puis la quatrième branche,
>> La raison en est que le reste ne fera que se lier à la plus proche si.
Ainsi, même si il ya un autre ici, que
ne crée pas nécessairement une solution mutuellement chaîne exclusive de tout.
Il est seulement l'expression là avec booléenne
3-- expression qui est la mutuellement exclusif avec l'autre.
Ainsi, il est possible, et parfois très utile,
comme je le disais, pour créer une chaîne de branches pas mutuellement exclusives.
Jetons un oeil à un autre sorte de sursis,
vous avez pas vu avant dans Scratch.
Il ya quelque chose appelé l'instruction switch.
L'instruction switch est plutôt drôle parce qu'il est
une instruction conditionnelle qui permet de spécifier cas distincts,
au lieu de compter sur booléenne expressions de prendre des décisions pour vous.
Ainsi, par exemple, disons que je dois ce programme,
et je demande à l'utilisateur d'apporter une contribution à moi.
Alors je dis, int x = Obtenez Int (), et si vous n'êtes pas familier et pourtant,
obtenir int est une fonction qui est également inclus dans la bibliothèque CS50,
donc si vous #include CS50.H vous aurez Obtenir l'accès à Int () et l'ensemble de ses
cousins-- GetFloat, GetString, et ainsi de suite.
Fondamentalement on obtenir pour chaque fonction Type que nous avons déjà discuté de données.
>> Donc Int x est égal à getint.
Fondamentalement, ce qui se passe est que je suis sur le terminal.
Je demande à l'utilisateur de taper un numéro.
>> Et là, je suis passer ce que je fais, en fonction
sur ce que l'utilisateur a tapé à l'invite.
Donc, si ils ont tapé un, je imprimer un.
Et puis je me casse.
Si ils tapent deux, je imprimer deux.
Et puis je me casse.
Il est important de rompre entre chaque cas
parce que sinon vous allez tomber à travers.
Donc, si je ne ai pas pauses là-bas, et l'utilisateur
dactylographiée un, ce qui se passerait est-il serait imprimer une, deux, trois, désolé.
Ce genre de comportement est étrange, non?
Vous pourriez le penser.
Mais il ya effectivement des cas où cela pourrait être une chose très utile.
Alors, voici un autre exemple d'un interrupteur déclaration où je omettre les pauses.
Mais je le fais exprès.
>> Donc ce qui se passe ici?
Pensez une seconde.
Vous pouvez même faire une pause la vidéo.
>> Ce qui se passe ici si les types d'utilisateurs quatre?
Donc, je l'ai demandé à l'utilisateur pour l'entrée.
Et ils fournissent la valeur 4.
Quel est imprimé quand je fais ça?
Sur la diapositive précédente, il y avait pauses entre tous les cas.
Et il serait tout simplement imprimer quatre, puis arrêter.
Mais dans ce cas, il ne sera pas.
Qu'est-ce qui va se passer est que vous tombera dans chaque cas.
>> Donc, dans ce cas, je l'ai organisé mes affaires de telle sorte que, si les types de l'utilisateur 4,
Je vais imprimer quatre, trois, deux, un, Blast Off.
Et si ils ont tapé 5, je voudrais commencer à cinq et de faire la même chose.
Si ils ont tapé 1, je voudrais il suffit de faire un, Blast Off.
>> Donc dans ce cas, je suis en utilisant un commutateur de type intelligemment afin
que je ne l'intention de tomber dans tous les cas.
Mais en général, vous êtes probablement va vouloir briser entre chacun d'eux,
sauf si vous avez une situation comme celui-ci où vous êtes
sorte de tirer parti du fait que vous aurez tomber à travers les cas, sans une pause.
Voilà donc le deuxième de la majeure types de déclarations conditionnelles.
Dont le dernier est:? Je avoir deux extraits de code C ici.
Un sur la gauche et un à droite.
L'un sur la gauche devrait probablement assez familier pour vous.
>> Je dois Int x.
Et je devrais probablement ont demandé à l'utilisateur
pour-- ce devrait probablement être Int x getint égale, ou quelque chose comme ça.
Et puis je vais prendre une décision.
Si une expression booléenne est vrai, affecter la valeur x 5.
Sinon, attribuez la valeur x 6.
>> Celle de gauche devrait probablement assez familier de notre discussion
Si des Else il ya un instant.
Seriez-vous surpris de savoir que la ligne sur la droite
fait exactement la même chose?
>> Donc, on appelle cela:? Ou parfois appelle l'opérateur ternaire.
Et il est assez cool.
Il est généralement utilisé comme un truc mignon.
>> Mais ce qu'il vous permet de faire est de Si simuler une autre avec vraiment petit,
vraiment trivialement courte branchements conditionnels.
Vous souhaitez généralement pas utiliser: si vous eu six lignes de code entre chaque série
accolades de Curly.
Mais si vous êtes juste de prendre une décision rapide,
si vous allez faire une chose ou de l'autre et il est très simple,
cela pourrait être un exemple de la façon de le faire avec: l'opérateur ternaire.
Donc Int x est égal à l'expression?
La chose après la question marque est la valeur de ce que x
sera si l'expression est vraie.
>> La chose après la côlon est ce que la valeur de x
serait si l'expression est fausse.
Alors je me pose, est l'expression vraie?
Si elle est, affecter la valeur x 5.
Si elle est pas, affecter la valeur x 6.
Encore une fois, comme je l'ai dit.
Cela est généralement juste un truc mignon.
Et parfois, si vous devenez vraiment à l'aise avec elle,
vous faites cela parce qu'il semble plutôt cool dans vos programmes.
En général, je suis en train de présenter au vous maintenant si vous êtes familier avec elle
si vous le voyez.
Mais sachez certainement vous ne disposez pas à l'écrire dans aucun de vos codes.
Mais il ya quelque chose à se familiariser avec, parce que vous aurez certainement rencontrez
des bouts de code et ici là où cela: la syntaxe,
Alias ​​l'opérateur ternaire, est utilisé.
>> Donc résumé rapide sur ce sont conditionnelles,
et quelles sont les options disponibles à vous en C. Vous avez Si et si-else,
et si d'autre si, et cetera.
Vous pouvez utiliser des expressions booléennes pour ceux de prendre des décisions.
>> Avec les déclarations switch vous utilisez affaires distinctes de prendre des décisions.
Vous voulez dire spécifiquement, si elle est une, ou si elle est deux, ou si elle est trois,
Je vais le faire cette chose, ou cette chose ou cette chose.
Et: peut être utilisé pour remplacer très simples branches if-else,
ou si-else chaînes à faire votre code regarder un peu de fantaisie.
>> Je suis Doug Lloyd.
Et cela est CS50.