1 00:00:00,000 --> 00:00:05,140 2 00:00:05,140 --> 00:00:05,640 Bien. 3 00:00:05,640 --> 00:00:08,330 Laissez donc maintenant parlons de quelque chose vraiment utile dans programming-- 4 00:00:08,330 --> 00:00:09,914 instructions conditionnelles. 5 00:00:09,914 --> 00:00:11,830 Donc expressions conditionnelles permettre à vos programmes 6 00:00:11,830 --> 00:00:14,538 de prendre des décisions et de prendre différentes bifurcations, quelque chose 7 00:00:14,538 --> 00:00:17,670 Je l'ai mentionné plus tôt, en fonction des valeurs des variables, 8 00:00:17,670 --> 00:00:20,990 ou sur la base de ce que les entrées de l'utilisateur à le programmeur, à la ligne de commande, 9 00:00:20,990 --> 00:00:23,130 ou si vous avez une invite ou quelque chose comme ça. 10 00:00:23,130 --> 00:00:26,690 C dispose d'un couple de différentes manières à exprimer des expressions conditionnelles, qui 11 00:00:26,690 --> 00:00:29,911 nous allons aussi parfois appeler un branchement conditionnel dans vos programmes. 12 00:00:29,911 --> 00:00:32,910 Et certains d'entre eux vont chercher assez familier pour vous à partir de zéro, 13 00:00:32,910 --> 00:00:35,190 donc nous allons même les tirer côte à côte, il suffit 14 00:00:35,190 --> 00:00:38,170 vous pouvez faire cette analogie dans votre tête. 15 00:00:38,170 --> 00:00:41,250 >> Donc, si si-- est une jolie simples conditionnelle. 16 00:00:41,250 --> 00:00:43,560 Si vous vous souvenez de rayure sur le droit ici 17 00:00:43,560 --> 00:00:50,000 vous pouvez remplir ce est hexagone avec une expression bleu si la souris enfoncé 18 00:00:50,000 --> 00:00:53,010 ou si x est inférieur à 10, ou quelque chose comme ça. 19 00:00:53,010 --> 00:00:57,390 Et puis, si x est inférieur à 10, ou si la souris était en fait, vers le bas, 20 00:00:57,390 --> 00:01:01,140 la totalité du code à l'intérieur de la pièce du puzzle pourrait agir. 21 00:01:01,140 --> 00:01:03,720 Toutes les choses qui correspondent à à l'intérieur de cette forme de C. 22 00:01:03,720 --> 00:01:07,200 >> De même, avons-nous si sur la gauche il. 23 00:01:07,200 --> 00:01:09,210 Si l'expression booléenne, que je suis juste en utilisant 24 00:01:09,210 --> 00:01:13,010 comme un substitut à l'un des booléenne expressions que nous avons précédemment discuté, 25 00:01:13,010 --> 00:01:15,240 accolade ouverte, accolade à proximité. 26 00:01:15,240 --> 00:01:17,720 Alors, pensez à bouclés ouverte accolade et accolade fermée 27 00:01:17,720 --> 00:01:22,720 comme une sorte de sandwich analogue à effet de la si le bloc sur la droite 28 00:01:22,720 --> 00:01:24,070 de rien. 29 00:01:24,070 --> 00:01:28,680 >> Si l'expression booléenne dans l'instruction if est vrai, 30 00:01:28,680 --> 00:01:30,900 puis toutes les lignes de code entre les accolades 31 00:01:30,900 --> 00:01:33,870 exécutera afin du haut jusqu'en bas. 32 00:01:33,870 --> 00:01:35,700 Si l'expression booléenne est fausse, nous allons 33 00:01:35,700 --> 00:01:38,610 sauter par-dessus tout le reste les accolades, parce que nous ne 34 00:01:38,610 --> 00:01:44,570 vouloir aller dans cette fourchette dans la route si l'expression booléenne est vraie. 35 00:01:44,570 --> 00:01:48,540 >> Nous pouvons prendre cette première étape plus loin avec si d'autre. 36 00:01:48,540 --> 00:01:50,820 Donc, ce bloc de Scratch est assez similaire à celui 37 00:01:50,820 --> 00:01:55,884 nous avons vu il ya tout juste une seconde, à l'exception il faut deux chemins différents en fonction 38 00:01:55,884 --> 00:01:56,550 sur ce qui se passe. 39 00:01:56,550 --> 00:02:00,420 Donc, si la souris est en baisse, ou si x est inférieur à 10, 40 00:02:00,420 --> 00:02:04,780 nous ferons tout ce qui est entre les deux cette première fourchette, que le premier C, 41 00:02:04,780 --> 00:02:08,430 >> Dans le cas contraire, si la souris est jusqu'à, ou x est au moins 10, 42 00:02:08,430 --> 00:02:10,460 nous ferons tout dans le deuxième set. 43 00:02:10,460 --> 00:02:15,010 Et qui est analogue à ce que vous voyez ici pour l'expression C. Si booléenne, 44 00:02:15,010 --> 00:02:17,910 faire les choses entre le premier jeu d'accolades. 45 00:02:17,910 --> 00:02:20,550 Sinon, faire les choses entre le deuxième jeu d'accolades. 46 00:02:20,550 --> 00:02:22,080 Donc, si l'opérateur booléen expression est vraie, nous allons 47 00:02:22,080 --> 00:02:23,580 faire tout ce qui est entre le premier ensemble. 48 00:02:23,580 --> 00:02:27,480 Si l'expression booléenne est faux, ce serait déclencher l'autre, 49 00:02:27,480 --> 00:02:30,100 et nous ferions tout ce qui est en le deuxième jeu d'accolades. 50 00:02:30,100 --> 00:02:34,190 Encore une fois, de haut en bas, tout lignes entre les accolades. 51 00:02:34,190 --> 00:02:38,130 >> En C, il est possible de créer une autre chaîne si-si-else. 52 00:02:38,130 --> 00:02:42,000 En fait, vous pouvez avoir si-else if-else if-else, si, et ainsi de suite et ainsi de suite et ainsi de 53 00:02:42,000 --> 00:02:42,720 sur. 54 00:02:42,720 --> 00:02:44,660 Dans Scratch, ce nécessaire emboîtement des blocs. 55 00:02:44,660 --> 00:02:48,280 Vous ajouter une autre si, et vous avez dû mettre un autre à l'intérieur de l'autre, 56 00:02:48,280 --> 00:02:51,110 et ainsi de suite, et il a obtenu genre de imbriquée et compliqué. 57 00:02:51,110 --> 00:02:52,450 Mais C, nous ne disposons pas de le faire. 58 00:02:52,450 --> 00:02:55,300 Nous pouvons en fait juste avoir ce soit une chaîne de ce type. 59 00:02:55,300 --> 00:02:58,350 Encore une fois, comme vous vous en doutez, tous ces branches sont mutuellement exclusifs. 60 00:02:58,350 --> 00:03:00,750 Vous ne pouvez jamais aller un bas de la branche. 61 00:03:00,750 --> 00:03:02,270 Si cela est vrai. 62 00:03:02,270 --> 00:03:03,930 Sinon, si cela est vrai. 63 00:03:03,930 --> 00:03:05,700 Sinon, si cela est vrai. 64 00:03:05,700 --> 00:03:07,120 Sinon, faire cela. 65 00:03:07,120 --> 00:03:11,010 Donc, les quatre branches de cette exemple sont mutuellement exclusifs. 66 00:03:11,010 --> 00:03:14,900 Il est une chaîne if-else if-else. 67 00:03:14,900 --> 00:03:17,580 >> Il est cependant possible, et parfois très utile, 68 00:03:17,580 --> 00:03:20,950 pour créer une chaîne de pas branches mutuellement exclusives. 69 00:03:20,950 --> 00:03:24,600 Dans cet exemple, seule la troisième et quatrième branches sont mutuellement exclusifs. 70 00:03:24,600 --> 00:03:27,450 Il se pourrait que vous pouviez satisfaire à la première condition, 71 00:03:27,450 --> 00:03:29,396 et vous pourriez satisfaire la deuxième condition, 72 00:03:29,396 --> 00:03:31,770 et vous pourriez satisfaire la troisième condition-- dans ce cas, 73 00:03:31,770 --> 00:03:35,270 vous iriez en bas de la première branche, alors vous descendez une seconde branche, 74 00:03:35,270 --> 00:03:37,000 alors vous voulez descendre la troisième branche. 75 00:03:37,000 --> 00:03:40,450 Ou peut-être vous satisfaire à la première état et le second état, 76 00:03:40,450 --> 00:03:42,770 mais vous ne remplissez pas la troisième condition. 77 00:03:42,770 --> 00:03:46,230 Dans ce cas, vous descendez la première branche et la seconde branche, 78 00:03:46,230 --> 00:03:48,040 puis la quatrième branche, 79 00:03:48,040 --> 00:03:51,392 >> La raison en est que le reste ne fera que se lier à la plus proche si. 80 00:03:51,392 --> 00:03:53,100 Ainsi, même si il ya un autre ici, que 81 00:03:53,100 --> 00:03:56,490 ne crée pas nécessairement une solution mutuellement chaîne exclusive de tout. 82 00:03:56,490 --> 00:04:00,890 Il est seulement l'expression là avec booléenne 83 00:04:00,890 --> 00:04:05,040 3-- expression qui est la mutuellement exclusif avec l'autre. 84 00:04:05,040 --> 00:04:07,580 Ainsi, il est possible, et parfois très utile, 85 00:04:07,580 --> 00:04:11,772 comme je le disais, pour créer une chaîne de branches pas mutuellement exclusives. 86 00:04:11,772 --> 00:04:14,230 Jetons un oeil à un autre sorte de sursis, 87 00:04:14,230 --> 00:04:17,392 vous avez pas vu avant dans Scratch. 88 00:04:17,392 --> 00:04:19,369 Il ya quelque chose appelé l'instruction switch. 89 00:04:19,369 --> 00:04:21,410 L'instruction switch est plutôt drôle parce qu'il est 90 00:04:21,410 --> 00:04:25,930 une instruction conditionnelle qui permet de spécifier cas distincts, 91 00:04:25,930 --> 00:04:28,926 au lieu de compter sur booléenne expressions de prendre des décisions pour vous. 92 00:04:28,926 --> 00:04:31,050 Ainsi, par exemple, disons que je dois ce programme, 93 00:04:31,050 --> 00:04:34,110 et je demande à l'utilisateur d'apporter une contribution à moi. 94 00:04:34,110 --> 00:04:37,170 Alors je dis, int x = Obtenez Int (), et si vous n'êtes pas familier et pourtant, 95 00:04:37,170 --> 00:04:40,190 obtenir int est une fonction qui est également inclus dans la bibliothèque CS50, 96 00:04:40,190 --> 00:04:44,610 donc si vous #include CS50.H vous aurez Obtenir l'accès à Int () et l'ensemble de ses 97 00:04:44,610 --> 00:04:46,840 cousins-- GetFloat, GetString, et ainsi de suite. 98 00:04:46,840 --> 00:04:52,590 Fondamentalement on obtenir pour chaque fonction Type que nous avons déjà discuté de données. 99 00:04:52,590 --> 00:04:53,970 >> Donc Int x est égal à getint. 100 00:04:53,970 --> 00:04:56,390 Fondamentalement, ce qui se passe est que je suis sur le terminal. 101 00:04:56,390 --> 00:04:58,790 Je demande à l'utilisateur de taper un numéro. 102 00:04:58,790 --> 00:05:02,300 >> Et là, je suis passer ce que je fais, en fonction 103 00:05:02,300 --> 00:05:05,060 sur ce que l'utilisateur a tapé à l'invite. 104 00:05:05,060 --> 00:05:09,147 Donc, si ils ont tapé un, je imprimer un. 105 00:05:09,147 --> 00:05:09,855 Et puis je me casse. 106 00:05:09,855 --> 00:05:12,590 107 00:05:12,590 --> 00:05:15,510 Si ils tapent deux, je imprimer deux. 108 00:05:15,510 --> 00:05:16,690 Et puis je me casse. 109 00:05:16,690 --> 00:05:19,060 Il est important de rompre entre chaque cas 110 00:05:19,060 --> 00:05:20,890 parce que sinon vous allez tomber à travers. 111 00:05:20,890 --> 00:05:23,380 Donc, si je ne ai pas pauses là-bas, et l'utilisateur 112 00:05:23,380 --> 00:05:31,380 dactylographiée un, ce qui se passerait est-il serait imprimer une, deux, trois, désolé. 113 00:05:31,380 --> 00:05:33,099 Ce genre de comportement est étrange, non? 114 00:05:33,099 --> 00:05:33,890 Vous pourriez le penser. 115 00:05:33,890 --> 00:05:36,480 Mais il ya effectivement des cas où cela pourrait être une chose très utile. 116 00:05:36,480 --> 00:05:39,730 Alors, voici un autre exemple d'un interrupteur déclaration où je omettre les pauses. 117 00:05:39,730 --> 00:05:42,030 Mais je le fais exprès. 118 00:05:42,030 --> 00:05:43,030 >> Donc ce qui se passe ici? 119 00:05:43,030 --> 00:05:43,821 Pensez une seconde. 120 00:05:43,821 --> 00:05:45,960 Vous pouvez même faire une pause la vidéo. 121 00:05:45,960 --> 00:05:48,230 >> Ce qui se passe ici si les types d'utilisateurs quatre? 122 00:05:48,230 --> 00:05:51,190 123 00:05:51,190 --> 00:05:53,860 Donc, je l'ai demandé à l'utilisateur pour l'entrée. 124 00:05:53,860 --> 00:05:56,560 Et ils fournissent la valeur 4. 125 00:05:56,560 --> 00:05:59,545 Quel est imprimé quand je fais ça? 126 00:05:59,545 --> 00:06:02,170 Sur la diapositive précédente, il y avait pauses entre tous les cas. 127 00:06:02,170 --> 00:06:04,750 Et il serait tout simplement imprimer quatre, puis arrêter. 128 00:06:04,750 --> 00:06:06,610 Mais dans ce cas, il ne sera pas. 129 00:06:06,610 --> 00:06:10,700 Qu'est-ce qui va se passer est que vous tombera dans chaque cas. 130 00:06:10,700 --> 00:06:14,890 >> Donc, dans ce cas, je l'ai organisé mes affaires de telle sorte que, si les types de l'utilisateur 4, 131 00:06:14,890 --> 00:06:20,070 Je vais imprimer quatre, trois, deux, un, Blast Off. 132 00:06:20,070 --> 00:06:22,780 Et si ils ont tapé 5, je voudrais commencer à cinq et de faire la même chose. 133 00:06:22,780 --> 00:06:26,410 Si ils ont tapé 1, je voudrais il suffit de faire un, Blast Off. 134 00:06:26,410 --> 00:06:28,715 >> Donc dans ce cas, je suis en utilisant un commutateur de type intelligemment afin 135 00:06:28,715 --> 00:06:30,804 que je ne l'intention de tomber dans tous les cas. 136 00:06:30,804 --> 00:06:33,720 Mais en général, vous êtes probablement va vouloir briser entre chacun d'eux, 137 00:06:33,720 --> 00:06:36,090 sauf si vous avez une situation comme celui-ci où vous êtes 138 00:06:36,090 --> 00:06:40,081 sorte de tirer parti du fait que vous aurez tomber à travers les cas, sans une pause. 139 00:06:40,081 --> 00:06:42,830 Voilà donc le deuxième de la majeure types de déclarations conditionnelles. 140 00:06:42,830 --> 00:06:47,139 Dont le dernier est:? Je avoir deux extraits de code C ici. 141 00:06:47,139 --> 00:06:48,680 Un sur la gauche et un à droite. 142 00:06:48,680 --> 00:06:52,330 L'un sur la gauche devrait probablement assez familier pour vous. 143 00:06:52,330 --> 00:06:55,110 >> Je dois Int x. 144 00:06:55,110 --> 00:06:57,167 Et je devrais probablement ont demandé à l'utilisateur 145 00:06:57,167 --> 00:07:00,250 pour-- ce devrait probablement être Int x getint égale, ou quelque chose comme ça. 146 00:07:00,250 --> 00:07:03,030 147 00:07:03,030 --> 00:07:05,240 Et puis je vais prendre une décision. 148 00:07:05,240 --> 00:07:11,700 Si une expression booléenne est vrai, affecter la valeur x 5. 149 00:07:11,700 --> 00:07:13,590 Sinon, attribuez la valeur x 6. 150 00:07:13,590 --> 00:07:16,548 >> Celle de gauche devrait probablement assez familier de notre discussion 151 00:07:16,548 --> 00:07:18,160 Si des Else il ya un instant. 152 00:07:18,160 --> 00:07:20,535 Seriez-vous surpris de savoir que la ligne sur la droite 153 00:07:20,535 --> 00:07:22,310 fait exactement la même chose? 154 00:07:22,310 --> 00:07:26,140 >> Donc, on appelle cela:? Ou parfois appelle l'opérateur ternaire. 155 00:07:26,140 --> 00:07:27,450 Et il est assez cool. 156 00:07:27,450 --> 00:07:29,110 Il est généralement utilisé comme un truc mignon. 157 00:07:29,110 --> 00:07:35,777 >> Mais ce qu'il vous permet de faire est de Si simuler une autre avec vraiment petit, 158 00:07:35,777 --> 00:07:37,610 vraiment trivialement courte branchements conditionnels. 159 00:07:37,610 --> 00:07:41,470 Vous souhaitez généralement pas utiliser: si vous eu six lignes de code entre chaque série 160 00:07:41,470 --> 00:07:42,569 accolades de Curly. 161 00:07:42,569 --> 00:07:44,360 Mais si vous êtes juste de prendre une décision rapide, 162 00:07:44,360 --> 00:07:47,520 si vous allez faire une chose ou de l'autre et il est très simple, 163 00:07:47,520 --> 00:07:52,240 cela pourrait être un exemple de la façon de le faire avec: l'opérateur ternaire. 164 00:07:52,240 --> 00:07:56,940 Donc Int x est égal à l'expression? 165 00:07:56,940 --> 00:07:59,470 La chose après la question marque est la valeur de ce que x 166 00:07:59,470 --> 00:08:02,690 sera si l'expression est vraie. 167 00:08:02,690 --> 00:08:05,330 >> La chose après la côlon est ce que la valeur de x 168 00:08:05,330 --> 00:08:07,990 serait si l'expression est fausse. 169 00:08:07,990 --> 00:08:11,510 Alors je me pose, est l'expression vraie? 170 00:08:11,510 --> 00:08:13,870 Si elle est, affecter la valeur x 5. 171 00:08:13,870 --> 00:08:16,619 Si elle est pas, affecter la valeur x 6. 172 00:08:16,619 --> 00:08:17,410 Encore une fois, comme je l'ai dit. 173 00:08:17,410 --> 00:08:18,670 Cela est généralement juste un truc mignon. 174 00:08:18,670 --> 00:08:20,430 Et parfois, si vous devenez vraiment à l'aise avec elle, 175 00:08:20,430 --> 00:08:22,820 vous faites cela parce qu'il semble plutôt cool dans vos programmes. 176 00:08:22,820 --> 00:08:25,710 En général, je suis en train de présenter au vous maintenant si vous êtes familier avec elle 177 00:08:25,710 --> 00:08:26,990 si vous le voyez. 178 00:08:26,990 --> 00:08:30,080 Mais sachez certainement vous ne disposez pas à l'écrire dans aucun de vos codes. 179 00:08:30,080 --> 00:08:33,246 Mais il ya quelque chose à se familiariser avec, parce que vous aurez certainement rencontrez 180 00:08:33,246 --> 00:08:36,130 des bouts de code et ici là où cela: la syntaxe, 181 00:08:36,130 --> 00:08:39,120 Alias ​​l'opérateur ternaire, est utilisé. 182 00:08:39,120 --> 00:08:40,960 >> Donc résumé rapide sur ce sont conditionnelles, 183 00:08:40,960 --> 00:08:44,210 et quelles sont les options disponibles à vous en C. Vous avez Si et si-else, 184 00:08:44,210 --> 00:08:46,860 et si d'autre si, et cetera. 185 00:08:46,860 --> 00:08:50,880 Vous pouvez utiliser des expressions booléennes pour ceux de prendre des décisions. 186 00:08:50,880 --> 00:08:53,720 >> Avec les déclarations switch vous utilisez affaires distinctes de prendre des décisions. 187 00:08:53,720 --> 00:08:57,540 Vous voulez dire spécifiquement, si elle est une, ou si elle est deux, ou si elle est trois, 188 00:08:57,540 --> 00:09:00,870 Je vais le faire cette chose, ou cette chose ou cette chose. 189 00:09:00,870 --> 00:09:04,660 Et: peut être utilisé pour remplacer très simples branches if-else, 190 00:09:04,660 --> 00:09:08,490 ou si-else chaînes à faire votre code regarder un peu de fantaisie. 191 00:09:08,490 --> 00:09:09,250 >> Je suis Doug Lloyd. 192 00:09:09,250 --> 00:09:11,410 Et cela est CS50. 193 00:09:11,410 --> 00:09:12,959