Tutto ok. Così ora parliamo di qualcosa veramente utile in programming-- istruzioni condizionali. Espressioni così condizionali consentire i programmi per prendere decisioni e prendere diversi forchette in mezzo alla strada, qualcosa Ho accennato poco prima, a seconda dei valori di variabili, o in base a ciò che l'utente immette a il programmatore, nella riga di comando, o se hai un prompt o qualcosa di simile. C ha un paio di modi diversi per esprimere espressioni condizionali, che noi anche a volte chiameremo un salto condizionato nei vostri programmi. E alcuni di questi stanno andando a guardare abbastanza familiare per voi da zero, così faremo anche li tiriamo fianco a fianco, basta si può fare che analogia nella tua testa. Quindi, se: se è una bella semplice condizionale. Se vi ricordate da graffio sulla destra qui si potrebbe compilare cioè esagono con un'espressione blu se mouse o se x è minore di 10, o qualcosa di simile. E poi, se x è stato inferiore a 10, o se il topo era infatti, giù, tutto il codice all'interno del pezzo di puzzle sarebbe eseguire. Tutte le cose che si adattano all'interno di quella forma C. Allo stesso modo, dobbiamo se lì sinistra. Se espressione booleana, che sto usando solo come un sostituto per una delle booleano espressioni che precedentemente discusso, parentesi graffa aprire, chiudere parentesi graffa. Quindi, pensare di riccio aperto parentesi e parentesi graffa chiusa come una sorta di analogo al panino effetto del blocco if a destra da zero. Se l'espressione booleana nell'istruzione if è vero, poi tutte le righe di codice tra le parentesi graffe verrà eseguito in ordine da cima a fondo. Se l'espressione booleana è falso, faremo saltare tutto il resto le parentesi graffe, perché abbiamo solo vuole andare giù che bivio se l'espressione booleana è vera. Possiamo prendere questo un passo ulteriormente con se altro. Quindi questo blocco Scratch è piuttosto simile a quella abbiamo visto solo un secondo fa, ad eccezione ci vogliono due percorsi diversi in base da ciò che accade. Quindi, se il mouse è sceso, o se x era inferiore 10, faremo tutto ciò che è in mezzo che prima forcella, che prima C., In caso contrario, se il mouse è up o x non è inferiore a 10, faremo tutto nel secondo set. E questo è analogo a quello che si vede qui per l'espressione booleana C. Se, fare le cose tra la primo set di parentesi graffe. Altrimenti, fare le cose tra la secondo set di parentesi graffe. Quindi, se il booleano espressione è vera, faremo fare tutto ciò che è tra il primo set. Se l'espressione booleana è falso, che farebbe scattare l'altro, e vorremmo fare tutto quello che è in la seconda serie di parentesi graffe. Ancora una volta, dall'alto in basso, tutte linee tra le parentesi graffe. In C, è possibile creare un if-else if-else catena. In realtà si può avere if-else if-else if-else, se, e così via e così via e così on. In Scratch, ciò ha richiesto nidificazione i blocchi. Si aggiunge un altro se-, e si doveva mettere un altro interno del resto, e così via, e ha ottenuto genere di nidificato e complicato. Ma C, non abbiamo a che fare. Possiamo in realtà solo avere che si tratti di una catena come questo. Ancora una volta, come ci si potrebbe aspettare, tutti questi rami si escludono a vicenda. Si può sempre e solo andare giù uno del ramo. Se questo è vero. Altrimenti, se questo è vero. Altrimenti, se questo è vero. In caso contrario, fare questo. Quindi tutti e quattro i rami in questo esempio si escludono a vicenda. Si tratta di una catena if-else if-else. E 'possibile però, e talvolta molto utile, per creare una catena di non rami si escludono a vicenda. In questo esempio, soltanto il terzo e quarto rami si escludono a vicenda. Potrebbe essere che si potrebbe soddisfare la prima condizione, e si potrebbe soddisfare la seconda condizione, e si potrebbe soddisfare il terzo condition-- nel qual caso si dovrebbe andare giù il primo ramo, poi si scende un secondo ramo, allora si dovrebbe andare giù il terzo ramo. O forse si soddisfano il primo condizioni, e la seconda condizione, ma non soddisfate la terza condizione. In questo caso si va giù per la prima ramo e il secondo ramo, e poi il quarto ramo, La ragione di questo è che il resto si legano solo al più vicino se. Così, anche se non c'è un altro qui, che non crea necessariamente un reciprocamente esclusiva catena di tutto. E 'solo l'espressione lì con booleano espressione 3-- questo è il escludono a vicenda con l'altro. Così è possibile, e a volte molto utile, come ho detto, per creare una catena di succursali non si escludono a vicenda. Diamo uno sguardo ad un diverso tipo di condizionale, che non avete visto prima nella Scratch. C'è qualcosa che si chiama l'istruzione switch. L'istruzione switch è sorta di ordinata perché è un'istruzione condizionale che permette di specificare casi distinti, invece di basarsi su booleano espressioni di prendere decisioni per voi. Così, per esempio, diciamo che ho questo programma, e sto chiedendo l'utente di fornire un contributo a me. Allora io dico, int x = Get Int (), e se non hai familiarità è ancora, ottenere int è una funzione che è anche inclusi nella libreria CS50, quindi se si #include CS50.H avrai Accesso ottenere Int () e tutti i suoi cousins-- getFloat, GetString, e così via. Fondamentalmente uno ottiene la funzione per ogni il tipo di dati che abbiamo già discusso. Così Int x è uguale a GetInt. Fondamentalmente quello che sta succedendo è Sono al terminale. Sto chiedendo all'utente di digitare in un numero. E qui io sono il passaggio quello che sto facendo, a seconda su ciò che l'utente ha digitato al prompt. Quindi, se digitate uno, stampo fuori uno. E poi mi rompo. Se si digita due, stampo fuori due. E poi mi rompo. E 'importante pausa tra ogni caso perché altrimenti cadere. Quindi, se non ho avuto alcun pause lì, e l'utente uno digitato, che cosa accadrebbe è che sarebbe stampare una, due, tre, mi dispiace. Questo è il tipo di comportamento strano, giusto? Si potrebbe pensare così. Ma ci sono in realtà alcuni casi in cui questo potrebbe essere una cosa molto utile. Quindi, ecco un altro esempio di un interruttore dichiarazione dove Tralascio le pause. Ma lo faccio apposta. Quindi, che cosa succede qui? Pensate per un secondo. Si potrebbe anche voler mettere in pausa il video. Cosa succede se qui l'utente digita quattro? Così ho chiesto all'utente per l'input. E forniscono il valore 4. Che cosa viene stampato quando faccio questo? Sulla diapositiva precedente, c'erano pause tra tutti i casi. E così sarebbe solo stampare quattro e poi fermarsi. Ma in questo caso, non sarà. Che cosa accadrà si è cadrà attraverso ogni caso. Quindi, in questo caso, ho organizzato i miei casi in modo tale che se l'utente 4, Io stampare quattro, tre, due, uno, saltare fuori. E se digitati 5, vorrei iniziare alle cinque e fare la stessa cosa. Se digitate 1, lo farei basta fare uno, blast off. Quindi, in questo caso, sto usando un interruttore di tipo abilmente così che io intendo cadere attraverso tutti i casi. Ma in generale si sta probabilmente andando voglio rompere tra tutti loro, a meno che non si ha una situazione come questo dove sei tipo di sfruttare il fatto che ti cadere attraverso i casi senza una pausa. Ecco, questo è il secondo dei principali tipi di istruzioni condizionali. L'ultimo dei quali è:? Così ho hanno due frammenti di codice C qui. Uno sulla sinistra e uno a destra. Quello a sinistra dovrebbe probabilmente essere abbastanza familiare. Ho Int x. E probabilmente dovrei hanno chiesto l'utente for-- questo dovrebbe probabilmente essere Int x uguale GetInt, o qualcosa del genere. E poi sto facendo una decisione. Se qualche espressione booleana è vero, assegnare il valore x 5. In caso contrario, assegnare il valore x 6. Che a sinistra dovrebbe probabilmente abbastanza familiare dalla nostra discussione Se Else di appena un momento fa. Sareste sorpresi di sapere che la linea a destra fa la stessa identica cosa? Quindi, questo è chiamato:? O, talvolta, chiamato l'operatore ternario. Ed è abbastanza freddo. Di solito è usato come un trucco carino. Ma quello che ti permette di fare è quello di simulare un caso Else con davvero piccolo, davvero banalmente breve rami condizionali. In genere non userebbe:? Se aveva sei righe di codice tra ogni serie parentesi graffe di. Ma se sei solo prendere una decisione rapida, se avete intenzione di fare una cosa o l'altro ed è molto semplice, questo potrebbe essere un esempio di come farlo con:? l'operatore ternario. Così Int x è uguale espressione? La cosa dopo la domanda marchio è quello di x valore sarà se espressione è vera. La cosa dopo il colon è quale valore di x sarebbe se l'espressione era falsa. Quindi mi chiedo, è vero l'espressione? Se è, assegnare il valore x 5. Se non lo è, assegnare il valore x 6. Anche in questo caso, come ho detto. Questo è di solito solo un trucco carino. E a volte se si diventa veramente bene con esso, lo farai questo perché sembra genere di freddo nei vostri programmi. In generale io sto presentando a ora così si ha familiarità con esso se lo vedi. Ma certamente sapere che non si dispone di scrivere in qualsiasi codice. Ma è qualcosa di avere familiarità con, perché avrai sicuramente incontrano frammenti di codice qui e là dove questo:? sintassi, AKA l'operatore ternario, viene utilizzato. Così breve riassunto su cosa condizionali sono, e quali sono le opzioni disponibili a voi in C. Bisogna Se e if-else, e se altro caso, eccetera. È possibile utilizzare le espressioni booleane per quelli di prendere decisioni. Con istruzioni switch si utilizza casi discreti per prendere decisioni. Si potrebbe dire in particolare, se si tratta di uno, o se è due, o se è tre, Farò questa cosa, o questa cosa, o questa cosa. E: può essere utilizzato per sostituire molto semplici rami if-else, o if-else catene a rendere il codice guardare un po 'di fantasia. Sono Doug Lloyd. E questo è CS50.