[RIPRODUZIONE DI BRANI MUSICALI] DOUG LLOYD: Ciao, quindi cerchiamo di parlare di operatori C. Così, abbiamo già visto uno, infatti, uguale l'operatore di assegnazione. Esso ci permette di mettere solo un valore in una variabile. Questo è l'assegnazione operatore, unico segno di uguale. Al fine di manipolare e lavoro con i valori e le variabili in C, abbiamo un certo numero di operatori a nostra disposizione che possiamo usare. Diamo uno sguardo a alcuni dei più comuni iniziando con operatori aritmetici. Come ci si potrebbe aspettare, si può fare graziose operazioni matematiche di base in C. Possiamo aggiungere, sottrarre, moltiplicare, e numeri dividere con più, meno, stella, and slash, rispettivamente. Ecco un paio di righe di codice in cui lo facciamo. Quindi, abbiamo int x è uguale a y + 1. Supponiamo che da qualche parte sopra questa riga di codice avevamo detto int y è uguale a 10. Qual è il valore di x dopo che ho eseguire questo prima riga di codice? Hai detto 11? Faresti destra. Come mai? Beh, Y era 10. Alcuni int Sto dicendo x è uguale a 10 più 1. 10 + 1 è 11. Quindi, il valore 11 viene memorizzato nella variabile x. Non troppo male, vero? Che ne dite di questo prossima linea di codice? x è uguale a volte x 5. Bene, prima abbiamo eseguito questa riga di codice, era x 11. Allora, qual è il valore di x dopo questa riga di codice? Prendete un secondo. Quindi, x è uguale a volte x 5. x era 11. Quindi, x è uguale a 11 volte 5. O 55. Quindi, se lei ha detto 55, avreste ragione. Ora, può essere un po 'di confusione, ma con il modo in cui funziona l'assegnazione in C è il valore a destra ottiene assegnato al valore a sinistra. Quindi, prima valutiamo x volte 5. Così, 11 volte 5 è 55. E allora salviamo quel valore in x. Il 11 che c'era prima è ora sovrascritto. Quindi il valore di x è ora 55. Speriamo che questo è abbastanza semplice. C'è un altro operatore che hai Probabilmente non necessariamente sentito chiamato questo, ma hai certamente lavorato in passato se vi ricordate i vostri giorni di tempo via divisione indietro nella scuola elementare. Si chiama l'operatore modulo. Che modulo fa è ti dà il resto quando si divide due numeri insieme. Quindi, se io dico 13 diviso per 4, qual è il resto? E tale valore calcolato per l'operatore modulo. Così, ho una riga di codice qui, int m è uguale a 13 mod 4. E lo dico qui in un commento valore di m è ora 1. Perché dico questo? Beh, fare la lunga divisione nella vostra testa, se portare con me per un secondo. Così, ho 4 diviso per 13. 4 va in 13 tre volte con un resto di 1. Quindi, in pratica, tutti i operatore modulo fa è quando si dice dividere, si ottiene il resto. Si potrebbe pensare che in realtà non è una cosa terribilmente utile, ma si sarebbe sorpreso, in realtà, per la frequenza con cui il modulo operatore può tornare utile. Ci sono un paio di problemi faremo CS50 che fare con esso. E 'anche un bene per fare cose come numero casuale. Così, ad esempio, se hai mai sentito parlare di un generatore di numeri casuali, che sta per darvi un numero da 0 a qualche numero enorme. Ma forse è davvero solo bisogno di un numero da 0 a 20. Se si utilizza l'operatore modulo su quel numero gigante che viene generato dal generatore di numeri casuali, si sta andando a prendere tutte le il valore enorme che è, dividerlo per 20, e ottenere il resto. Il resto può solo essere un valore da 0 a 19. Quindi, si utilizza operatore modulo di prendere questo numero enorme e whittle giù in qualcosa un po 'più significativo. Sono abbastanza sicuro che sarete in grado di utilizzare sia di quelli ad un certo punto in futuro CS50. Quindi, C ci dà anche un modo applicare una aritmetica all'operatore di una singola variabile in un piccolo modo più abbreviata. Così, nella diapositiva precedente, abbiamo visto x è uguale a volte x 5. Che ha lavorato. 5 x volte poi viene memorizzato nel x. C'è un modo più breve per farlo, il pensiero, e sono i tempi sintassi x è uguale a 5. E 'la stessa cosa esatta come dicendo x è uguale a volte x 5. E 'solo un po' via più breve per farlo. E quando si vede un po ' codice distribuzione o si vedere qualche codice di esempio che fa le cose in questo modo, basta avere familiarità con che cosa significa la sintassi. Certamente non hanno per usarlo, ma se lo fai, potrebbe rendere il codice guardare un po 'trasandato. E sa che si può anche utilizzare una qualsiasi delle i diversi operatori che abbiamo già visto prima invece di volte. Si potrebbe dire x più uguale a 5, meno è uguale a 5, i tempi, dividere, e mod. Tutti quelli lavoro. C'è anche qualcosa di che è così comune in C che abbiamo deciso di raffinare che ancora di più. Incrementare una variabile da 1 o decrementare una variabile 1 è un cosa-- tale comune, soprattutto quando si parla di loop un po 'più tardi on-- che abbiamo deciso invece di dicendo qualcosa come x + uguale a 1, o x è uguale a x + 1, abbiamo anche short handed che per x plus plus. Quindi, x è uguale a più 1 x, x + uguale a 1, e x plus plus tutti fanno la stessa cosa. Tutti incremento x di 1. Ma questo incremento e decrementare da 1 è così comune che abbiamo plus plus e meno meno che ci permettono di stenografia che ulteriormente. Quindi, cerchiamo di cambiare marcia per il secondo e parlare di espressioni booleane. Tutti che sono anche di tipo rientrano in la categoria degli operatori. Ma espressioni booleane, a differenza di operatori aritmetici, sono utilizzati per confrontare i valori. Quindi, di nuovo, tutte le espressioni booleane in C restituire uno dei due valori possibili, ricordare. Vero o falso. Ecco le uniche due valori Variabile booleana può assumere. Siamo in grado di utilizzare i risultati di una espressione booleana in molti modi in programmazione. In realtà, sarete facendo un bel po '. Ad esempio, si potrebbe decidere, bene, se un po 'di condizione è vera, forse mi prendo questo diramare il mio codice. Un condizionale, per così dire. Impareremo di coloro presto troppo. Oppure, purché questo è vero, voglio per continuare a fare questo più e più e più volte. Un loop. In entrambi i casi, sappiamo che stiamo usando un'espressione booleana, un vero o falso, per decidere se o meno prendere un percorso particolare. A volte, quando stiamo lavorando con espressioni booleane, useremo le variabili di tipo Bool. Potreste aver dichiarato un Bool digitato variabile e che verrà utilizzato nel vostro Espressione booleana. Ma non dovete sempre fare. Come si è visto, in C, ogni non-0 il valore è lo stesso che dire vero. Se tu avessi dichiarato variabile di tipo booleano, e assegnato il valore vero, è equivale a dichiarare un intero e lo assegna al valore 1, 2, 3, o realmente qualsiasi valore qualunque diverso da 0. Perché in C, ogni-0 non valore è true. 0, invece, è falso. Questo potrebbe tornare a portata di mano in seguito a conoscere, ma solo qualcosa da tenere a mente. Non abbiamo sempre usare Variabili di tipo booleane quando abbiamo stanno lavorando con espressioni booleane. Ci sono due tipi principali di booleana espressioni che ci lavoriamo. Operatori logici e operatori relazionali. Il linguaggio è Non terribilmente importante. E 'davvero solo come io li sto raggruppamento. E vi sarà certamente, credo, in fretta realizzare ciò che un operatore relazionale è, sulla base di quello che sono quando noi parlare di loro in un secondo. Ma non ti preoccupare necessariamente memorizzare l'operatore logico termine o operatore relazionale. Sto solo usando per gruppo li in modo logico. Quindi, diamo un'occhiata a i tre operatori logici che vedremo un bel bit in programmazione in CS50 e in programmazione, più in generale. Logica AND è vero, se e solo se entrambi gli operandi sono veri. Altrimenti false. Dove vuol dire? Quindi, diciamo che io sono in punto nel mio codice dove ho due variabili, xey. E voglio decidere se a fare qualcosa nel mio codice in base a se x è vero e y è vero. Voglio solo farlo se entrambi sono vere, altrimenti io non voglio andare giù che strada perché non sta andando per aiutare me. Quello che posso dire è che se x & & y. Questo sarà un valore booleano logico espressione confrontando xey e prendendo un certo percorso in base a ciò che i loro valori sono. Quindi, se x è vero e y è vero sulla base di questa tabella di verità qui, solo allora andremo su questa strada. Se x, & & a. E 'solo il true-- ed è solo vero se x è vero e y è vero. Se uno dei due è falso, come si vede la tabella di verità, quindi sia x che y non sono vere. E così, x & & y è falso. OR logico è vero se e solo se almeno un operando è vero. Altrimenti false. Così logico richiesto sia x e y per essere vero. OR logico richiede x per essere vero o y per essere vero o sia x che y per essere vero. Così, ancora una volta, ci troviamo di tipo in una situazione dove stiamo andando al nostro codice, e abbiamo raggiunto un bivio. E vogliamo scendere una particolare percorso se x è vero o y è vero, ma non necessariamente se entrambe sono vere. Ma forse se entrambe sono vere. Quindi, se x è vero e y è vero, andiamo su questa strada. x è vero. Uno di loro è vero, giusto? Se x è vero e y è vero. Se x è vero, ed y è falso, una di esse è ancora vero. Quindi, X o Y è ancora vero. Se x è falso, ed y è vero, uno di loro è ancora vero, giusto? y è vero, in questo caso. Quindi, è vero che xoy è vero. Solo se x è falso e y è falso non andiamo su questa strada, perché né x né y è vero. Ora, se siete alla ricerca lo schermo in questo momento e chiedendosi cosa che simbolo è per logica OR, si chiama la barra verticale. E se si guarda a vostra tastiera per un minuto, come sto facendo ora, di solito è appena sopra il Tasto Invio, sulla maggior parte delle tastiere, sullo stesso tasto della barra rovesciata. E 'anche di solito a destra accanto alle parentesi quadre. Quindi, potrebbe essere una chiave che si non hanno digitato molto in passato. Ma, se si sta facendo sempre confronti logici, come faremo un lot in corso, è sta per essere utile trovare la chiave e usarla. Quindi, è generalmente sullo stesso tasto come backslash appena sopra Invio. L'operatore logico finale non è. E non e 'abbastanza semplice. Si inverte il valore del suo operando. Se x è vero, allora non x è falso. Se x è falso, allora non x è vero. A volte si sente questo simbolo pronunciato come botto o esclamazione o no. E 'più o meno la stessa cosa. Nel caso in cui si sente che parla e non siete sicuri di che cosa significa, è solo l'esclamazione punto, ma a volte è chiamato un paio di cose diverse. Va bene, in modo che si cura degli operatori logici. Quindi, parliamo di operatori relazionali. Anche in questo caso, se si ha familiarità con questo aritmetica indietro nella scuola elementare, probabilmente siete familiare con come funzionano già. Questi si comportano esattamente come ci si aspetterebbe. Quindi meno è vero, in questo esempio, se x è minore di y. Quindi, se x è 4 e y è 6, x è minore di y. Questo è vero. Minore o uguale a funziona piuttosto simile. Se x è 4, e y è 4, quindi x è minore o uguale al secondo. Più grande di. x è maggiore di y. E maggiore o uguale a, x è maggiore o uguale a y. Se è vero, allora avrete passare questa espressione, e si andrà verso il basso tale percorso sulla strada. Se si dispone di un se x è maggiore di y, ed x è, infatti, è maggiore di y, farai tutto ciò che è soggetto a tale condizione. Si noti che non abbiamo un singolo carattere per meno o uguale a, come si potrebbe essere familiarità con i libri di testo di matematica da. Quindi, abbiamo il simbolo di minore, seguito da un segno di uguale. Ecco come noi rappresentiamo minore o uguale a. E allo stesso modo, facciamo che maggiore o uguale a. La finale due relazionale operatori che sono importanti stanno testando per l'uguaglianza e la disuguaglianza. Quindi, se x è uguale a uguale y, è vero se X e Y del valore è lo stesso. Se x è 10, ed y è 10, allora x è uguale uguale y è vero. Se x è 10 e y è 11, x uguale uguale y non è vero. Possiamo anche testare per la disuguaglianza utilizzo punto esclamativo o scoppio o NOT, nuovo. Se x non è uguale a y se questa è la prova che stiamo usando qui, saremmo a posto. Quindi, se x non è uguale a y, andremo su questa strada. Essere molto attenti qui. E 'un mistake-- davvero comune e quello che ho certamente fatto un bel po 'quando Mi stavo started-- scambiare accidentalmente l'operatore di assegnazione, singole uguali, per l'operatore di confronto di uguaglianza, doppio uguale. Sarà un po 'strano portare a comportamento nel codice, e di solito il compilatore avvisa su di esso quando si cerca e compilare il codice, ma a volte si potrebbe essere in grado di sgattaiolare dal. Non è necessariamente una buona cosa che si insinuano che da, però. Solo così se si sta facendo un test di disuguaglianza, se si sta verificando se due diverse variabili hanno lo stesso valore dentro di loro, assicurarsi di utilizzare pari pari, e non singole uguali. E in questo modo il programma sarà avere il comportamento che si intende. Sono Doug Lloyd e questo è CS50.