Todo ben. Entón agora imos falar de algo realmente útil en programming-- instrucións condicionais. Entón expresións condicionais permitir que os seus programas para tomar decisións e diferente garfos na estrada, algo Eu aludiu a pouco máis cedo, dependendo dos valores das variables, ou a base do que o usuario introduce na o programador, na liña de comandos, ou se ten un prompt ou algo así. C ten un par de diferentes xeitos expresar expresións condicionais, que nós tamén, por veces, vai chamar un desvío condicional nos seus programas. E algúns deles van ollar moi familiar para ti a partir de cero, así que imos mesmo retirala los Se xeito conxunto, só pode facer esa analoxía na súa cabeza. Entón, se-- se é unha fermosa simple condicional. Se se lembrar de cero á dereita aquí podería cubrir ese é hexágono cunha expresión de azul se rato abaixo ou se X é menor que 10, ou algo así. E, a continuación, se x é inferior a 10, ou se o rato foi, de feito, para abaixo, todo o código no parte do enigma sería executado. Todas as cousas que se encaixan interior que forma C. Do mesmo xeito, temos se na parte esquerda alí. Se a expresión booleana, que eu só estou usando como un substituto para un dos booleano expresións que anteriormente discutidos, chaveta aberta, preto chaveta. Entón pense rizado aberto cinta e chaveta pechado como unha especie de análogo ao bocadillos efecto do que bloque á dereita a partir de cero. Se a expresión booleana no caso afirmación é certa, a continuación, todas as liñas de código entre as chaves executará a fin dende arriba cara abaixo. Se a expresión booleana é falso, imos ir sobre todo in-entre as chaves, porque só quere ir para abaixo que bifurcación na estrada a expresión booleana é certa. Podemos dar un paso aínda máis con outra cousa. Polo tanto, este bloque Scratch é moi semellante ao que vimos só un segundo atrás, agás leva dous camiños diferentes en base sobre o que pasa. Polo tanto, se o rato foi para abaixo, X ou se foi inferior a 10, imos facer todo o que está no medio que o primeiro garfo, que primeiro C., Se non, se o rato é up, ou x é igual ou superior a 10, imos facer de todo no segundo set. E iso é análogo ao que ve aquí para expresión C. Se booleano, facer as cousas entre o primeiro conxunto de claves. Else, facer as cousas entre o Segundo conxunto de claves. Polo tanto, se o booleano expresión é certa, imos facer todo o que é entre o primeiro set. Se a expresión booleana é false, que provocaría a máis, e queremos facer todo o que está o segundo conxunto de claves. Unha vez máis, de arriba abaixo, todos liñas entre as chaves. En C, é posible crear unha cadea de if-else if-else. En realidade, pode que if-else if-else Se máis, se, e así por diante e así por diante e así no. En risco, isto esixe aninhando os bloques. Engade un else if-, e tiña que poñer outro dentro do máis, etc., e quedou tipo de aniñada e complicado. Pero C, non debemos facelo. Podemos realmente só ten que sexa unha cadea como este. Unha vez máis, como podería esperar, todo estes ramos son mutuamente exclusivas. Só podes nunca ir baixar un do sector. Se iso é verdade. Se non, se iso é verdade. Se non, se iso é verdade. Se non, facelo. Entón, todos os catro ramas neste exemplo son mutuamente exclusivas. É unha cadea de if-else if-else. Pode, con todo, e por veces moi útiles, para crear unha cadea de non ramas mutuamente exclusivos. Neste exemplo, só o terceiro e cuarta partes son mutuamente exclusivas. Pode ser que podería satisfacer a primeira condición, e podería satisfacer a segunda condición, e podería satisfacer o terceiro caso de que condition-- ía para abaixo o primeiro sector, a continuación, vai para abaixo un segundo sector, entón ten que ir para abaixo o terceiro sector. Ou que satisfacer a primeira condición, e á segunda condición, pero non satisfai a terceira condición. Nese caso vai para abaixo o primeiro rama eo segundo sector, e, a continuación, o cuarto sector, A razón para isto é que a outra só pode conectar-se ao máis próximo se. Así, aínda que non haxa outra persoa aquí, que non crea necesariamente un mutuamente cadea exclusiva de todo. É só a expresión alí con booleana 3-- expresión que é a mutuamente exclusivos coa outra persoa. Por iso, é posible, e ás veces moi útil, como dixen, para crear unha cadea de ramas non mutuamente exclusivas. Imos dar un ollo a un diferente tipo de condicional, que non teña visto antes na Scratch. Hai algo chamado a instrución switch. A instrución switch é tipo de limpo, porque é unha instrución condicional que permite especifique casos distintos, en vez de depender booleana expresións de tomar decisións por ti. Así, por exemplo, imos dicir que eu teño este programa, e eu estou pedindo ao usuario contribuíndo para min. Entón eu digo, int x = Obter Int (), e se non está familiarizado aínda, obter int é unha función que é Tamén incluídos na biblioteca de CS50, por iso, se # include CS50.H terá Acceder a Int () e toda a súa cousins-- GetFloat, GetString, e así por diante. Basicamente un Get función para cada tipo de datos que nós xa discutir. Entón Int x é igual a GetInt. Basicamente o que está pasando é que estou no terminal. Estou pedindo que o usuario introduza un número. E aquí estou comutando o que estou facendo, dependendo en que o usuario introduciu no poder. Entón, se eles ingresaran un, eu imprimir un. E entón eu romper. No caso de que tipo dous, eu imprimir dous. E entón eu romper. É importante intervalo entre cada caso porque senón vai caer. Entón, se eu non tiña ningunha breaks alí, eo usuario un escrito, o que acontecería se que ía imprimir un, dous, tres, desculpe. Ese é un tipo de comportamento estraño, non? Pode pensar así. Pero en realidade hai algúns casos en que esta podería ser unha cousa moi útil. Entón aquí está outro exemplo dun interruptor declaración onde omitir as pausas. Pero eu fago iso de propósito. Entón o que ocorre aquí? Pense por un segundo. Pode querer facer unha pausa no video. Que pasa aquí se o usuario escribe catro? Entón eu pregunta ao usuario a entrada. E fornecen o valor 4. O que será impreso cando fago iso? No slide anterior, houbo roturas entre todos os casos. E así sería só imprimir catro e despois parar. Pero, neste caso, non vai. O que vai ocorrer é que caerá a través de cada caso. Polo tanto, neste caso eu organizei meus casos de tal forma que, se vostede 4, Vou imprimir catro, tres, dous, un, despegar. E no caso de que ingresaran 5, quere comezar ás cinco e facer o mesmo. No caso de que ingresaran 1, eu o faría basta facer un, explosión fóra. Polo tanto, neste caso, eu estou usando un interruptor tipo de intelixentemente para que eu pretendo caer a través de todos os casos. Pero xeralmente probablemente vai quere romper entre todos eles, a menos que ten unha situación como esta, onde está tipo de alavancar o feito de que vai caer a través dos casos sen interrupción. Entón este é o segundo do major tipo de declaracións condicionais. A última das cales é :? Entón eu ten dous fragmentos de código C aquí. Un á dereita e outro á dereita. O da esquerda debería probablemente ser moi familiar para ti. Teño Int x. E eu probablemente debería pediron ao usuario for-- iso probablemente debe ser Int x é igual a GetInt, ou algo parecido. E entón eu estou facendo unha decisión. Se algunha expresión booleana é realidade, asignar o valor x 5. Se non, asignar o valor x 6. Que á esquerda, probablemente, debe ser moi familiar a partir da nosa discusión Se Else de só un momento atrás. Vostede quedaría sorprendido saber que o texto á dereita fai exactamente o mesmo? Entón, iso é chamado de :? Ou ás veces chamado o operador ternário. E é moi legal. É xeralmente usado como un truco bonito. Pero o que permite que a facer é simular un If Else con moi pequeno, realmente trivialmente curta desvíos condicionais. Normalmente non usaría :? Se tiña seis liñas de código entre cada conxunto cintas de rizado. Pero se é só tomar unha decisión rápida, se está indo para facer unha cousa ou outro e é moi simple, este pode ser un exemplo de como a facelo con :? o operador ternário. Entón Int x é igual a expresión? O logo da pregunta marca é o valor de x será a expresión é certa. O logo da colon é o valor de x sería a expresión era falsa. Entón, eu estou me pregunta, é a expresión verdadeira? Se é, asignar o valor x 5. Se non é, asignar o valor x 6. Unha vez máis, como dixen. Isto xeralmente é só un truco bonito. E, ás veces, se facer realmente cómodo con iso, vai facelo porque parece tipo de fresco nos seus programas. Xeralmente estou presentando a agora para que estea familiarizado con el se velo. Pero certamente sabe que non ten gravala-lo en calquera dos seu código. Pero é algo para estar familiarizado con, porque sempre vai atopar fragmentos de código aquí e alí onde iso :? sintaxe, AKA o operador ternário, é usado. Resumo tan rápido en o que son condicionais, e cales son as opcións dispoñibles para que en C. Se tes e if-else, e se alguén se, etcétera. Podes usar expresións booleanas para os que tomar decisións. Con declaracións rede usa casos discretos para tomar decisións. Podería dicir especificamente, se é un, ou se é dous, ou se é tres, Vou facer esa cousa, ou esa cousa, ou esta cousa. E :? Poden usarse para substituír moi sinxelo ramas if-else, ou if-else cadeas para facer seu código parece un pouco extravagante. Eu son Doug Lloyd. E este é CS50.