>> [Jouer de la musique]
>> DOUG LLOYD: Salut, nous allons donc parler opérateurs C.
Donc, nous avons déjà vu un, en fait, est égal à l'opérateur d'affectation.
Il nous permet simplement de mettre une valeur dans une variable.
Voilà la mission opérateur, seul signe égal.
Dans le but de manipuler et de travail avec des valeurs et des variables en C,
nous avons un certain nombre d'opérateurs à notre disposition que nous pouvons utiliser.
Jetons un oeil à quelques-uns des plus communs
en commençant par des opérateurs arithmétiques.
Comme vous vous en doutez, nous pouvons faire jolies opérations mathématiques de base en C.
Nous pouvons ajouter, soustraire, multiplier et numéros de diviser en utilisant plus, moins, étoiles,
and slash, respectivement.
Voici quelques lignes de code dans lequel nous faisons cela.
Donc, nous avons int x est égal à y + 1.
Supposons que quelque part au-dessus de cette ligne de code
nous avions dit int y est égal à 10.
Quelle est la valeur de x après que je exécuter cette première ligne de code?
Avez-vous dit 11?
Vous feriez droite.
Pourquoi donc?
Eh bien, y était de 10.
Certains int je dis x est égal à 10 + 1.
10 + 1 est 11.
Ainsi, la valeur 11 obtient stockée dans la variable x.
Pas trop mal, non?
>> Que diriez-vous cette prochaine ligne de Code? x est égal à 5 ​​x fois.
Eh bien, avant, nous avons exécuté cette ligne de code, x était de 11.
Alors, quelle est la valeur de x après cette ligne de code?
Prenez une seconde.
Ainsi, x est égal à 5 ​​x fois.
x était de 11.
Ainsi, x est égal à 11 fois 5.
Ou 55.
Donc, si vous avez dit 55, vous avez raison.
>> Maintenant, il peut être un peu déroutant, mais de la façon dont cette mission travaille en C
est la valeur sur la droite obtient assigné à la valeur du côté gauche.
Donc, d'abord, nous évaluons x fois 5.
Donc, 11 fois 5 est 55.
Et puis nous stockons cette valeur dans x.
Le 11 qui s'y trouvait avant est maintenant remplacé.
Donc, la valeur de x est maintenant 55.
Espérons que cela est assez simple.
>> Il ya un autre opérateur que vous avez probablement pas nécessairement entendu
appelé cela, mais vous avez certainement travaillé avec dans le passé
si vous vous souvenez de vos jours de temps Division chemin du retour à l'école primaire.
Il a appelé l'opérateur modulo.
Quel module fait est qu'il vous donne le reste
lorsque vous divisez deux nombres.
Donc, si je dis 13 divisé par 4, ce qui est le reste?
Et cette valeur serait calculée par l'opérateur modulo.
>> Donc, je dois une ligne de code ici, m est égal à 13 int mod 4.
Et je dis ici dans un commentaire la valeur de ce que m est maintenant 1.
Pourquoi dis-je cela?
Eh bien, faire la longue division dans votre tête, si vous garder avec moi pour une seconde.
Donc, je l'ai 4 divisé par 13.
4 va en 13 trois fois avec un reste de 1.
Donc, en gros, tout le opérateur module fait
est-il lorsque vous raconte fracture, vous obtenez le reste.
Vous pourriez penser que ce fait pas une chose terriblement utile,
mais vous seriez surpris, en fait, en ce que la fréquence à laquelle le module
opérateur peut venir dans maniable.
>> Il ya un couple de problèmes nous ferons CS50 qui traitent avec elle.
Il est également bon pour faire des choses comme nombre aléatoire.
Ainsi, par exemple si vous avez déjà entendu d'un générateur de nombres aléatoires,
cela va vous donner un certain nombre de 0 à un nombre énorme.
Mais peut-être vous ne vraiment besoin d'un nombre de 0 à 20.
Si vous utilisez l'opérateur modulo sur ce numéro géant que
obtient généré par le Générateur de nombres aléatoires,
vous allez prendre toutes les grande valeur, il est, diviser par 20,
et obtenir le reste.
Le reste ne peut une valeur de 0 à 19.
Donc, vous utilisez opérateur modulo profiter de cette grand nombre
et rogner le bas en quelque chose un peu plus de sens.
Je suis sûr que vous serez pouvoir utiliser à la fois de ceux
à un certain moment à l'avenir dans CS50.
>> Donc, C nous donne aussi un moyen d'appliquer une arithmétique
opérateur à une variable unique de façon un peu plus d'un raccourci.
Ainsi, dans la diapositive précédente, nous avons vu x est égal à 5 ​​x fois.
Cela a fonctionné.
5 x fois puis est stockée avant x.
Il ya un chemin plus court pour le faire, la pensée, et il est temps de syntaxe X est égal à 5.
Il est exactement la même chose que disant x est égal à 5 ​​x fois.
Il est juste un peu chemin plus court pour le faire.
Et quand vous voyez certains code de distribution ou de vous
voir exemple de code qui fait des choses comme ça,
juste être familier avec ce qui signifie la syntaxe.
Vous ne devez certainement pas de l'utiliser, mais si vous le faites,
il pourrait rendre votre code regarder un peu plus lisse.
Et sachez que vous pouvez également utiliser l'une des les différents opérateurs que nous avons déjà
vu avant au lieu de fois.
Vous pourriez dire x plus égal à 5, moins est égal à 5, temps, diviser, et mod.
Tous ceux qui travaillent.
>> Il ya aussi quelque chose qui est si commune dans C
que nous avons décidé de affiner encore plus loin.
Incrémenter une variable de 1 ou décrémenter une variable par 1
est une commune en particulier chose-- lorsque nous parlons de boucles un peu plus tard
on-- que nous avons décidé au lieu de disant quelque chose comme x plus égal à 1,
ou x est égal à x + 1, nous avons même short handed que, pour x plus plus.
Donc, x est égal à x + 1, x plus égal à 1, et x plus plus font tous la même chose.
Ils ont tous incrément x par 1.
Mais ce incrémentation et décrémenter par 1
est si commun que nous avons plus plus et minus
qui nous permettent de sténographie encore plus loin.
>> Donc, nous allons passer à la vitesse pour la deuxième et parler des expressions booléennes.
Tout qui sont également genre de tomber dans la catégorie générale des opérateurs.
Mais expressions booléennes, Contrairement aux opérateurs arithmétiques,
sont utilisés pour comparer les valeurs.
Encore une fois, toutes les expressions booléennes dans C évaluer l'une des deux valeurs possibles,
rappeler.
Vrai ou faux.
Voilà les deux seules valeurs qui Variable booléenne peut prendre.
Nous pouvons utiliser les résultats d'une expression booléenne
dans beaucoup de façons dans la programmation.
En fait, vous serez Ce faisant beaucoup.
>> Par exemple, nous pourrions décider, Eh bien, si une condition est vraie,
peut-être je vais prendre cette ramifier en bas de mon code.
A condition, pour ainsi dire.
Nous allons apprendre de ceux bientôt trop.
Ou bien, à condition que cela est vrai, je veux
de continuer à faire ce Encore et encore et encore.
Une boucle.
Dans les deux cas, nous savons que nous utilisons une expression booléenne, un vrai ou faux,
à décider si oui ou non de prendre un chemin particulier.
Parfois, quand nous travaillons avec des expressions booléennes,
nous allons utiliser des variables de type Bool.
Vous pourriez avoir déclaré un Bool tapé variable
et vous utilisez dans votre Expression booléenne.
Mais vous ne devez pas toujours à faire.
Comme il se trouve, en C, tous les non-0 valeur est la même chose que dire vrai.
Si vous aviez déclaré variable de type Boolean,
et lui a attribué la valeur réelle, qui est identique à déclarer un nombre entier
et en lui attribuant la valeur 1, 2, 3, ou vraiment toute valeur
que ce soit autre que 0.
Parce que dans C, tous les non-0 valeur est vrai.
0, d'autre part, est faux.
Cela pourrait venir utile par la suite de savoir,
mais juste quelque chose à garder à l'esprit.
Nous ne l'ont toujours pas à utiliser Les variables booléennes de type lorsque nous
sont travailler avec des expressions booléennes.
>> Il existe deux principaux types de Boolean expressions que nous allons travailler avec.
Les opérateurs logiques et opérateurs relationnels.
La langue il ya pas très important.
Il est vraiment juste comment je vais les regrouper.
Et vous aurez certainement, je pense, rapidement réaliser ce qu'est un opérateur relationnel est,
sur la base de ce qu'ils sont quand nous parler dans une seconde.
Mais ne vous inquiétez pas nécessairement mémoriser l'opérateur logique terme
ou opérateur relationnel.
Je suis juste l'utiliser pour groupe eux d'une manière logique.
>> Donc, nous allons jeter un oeil à les trois opérateurs logiques
que nous verrons tout à fait une peu dans la programmation en CS50
et dans la programmation en général.
ET logique est vrai, si et seulement si les deux opérandes sont vrais.
Sinon faux.
Où est-ce que cela signifie?
Donc, disons que je suis à un signaler dans mon code où je dois
deux variables x et y.
Et je tiens à décider si de faire quelque chose dans mon code
sur la base de si x est vrai et y est vrai.
Je veux seulement faire si deux d'entre eux sont vraies,
sinon, je ne veux pas aller dans cette chemin, car il ne va pas me aider.
Qu'est-ce que je peux dire est que si x & & Y.
Ce sera un booléen logique expression comparant x et y
et en prenant un certain chemin basé sur ce que leurs valeurs sont.
Alors, si x est vrai et y est vrai basée sur cette table de vérité ici,
alors seulement nous aller dans cette voie.
Si x, y & &.
Il est seulement le true-- et est seulement vrai si x est vrai et y est vrai.
Si l'un est faux, comme nous le voyons la table de vérité,
puis les deux X et Y ne sont pas vraies.
Et donc, x & & y est faux.
>> OU logique est vraie si et seulement si au moins un opérande est vrai.
Sinon faux.
Si logique et si nécessaire X et Y pour être vrai.
OU logique exige x pour être vrai ou y pour être vrai ou les deux X et Y pour être vrai.
Donc, encore une fois, nous trouvons type de nous-mêmes dans une situation
où nous allons à notre code, et nous sommes arrivés à une bifurcation de la route.
Et nous voulons descendre une notamment chemin si x est vrai
ou y est vrai, mais pas nécessairement si les deux sont vrais.
Mais peut-être, si les deux sont vrais.
Donc, si x est vrai et y est vrai, nous irons dans cette voie.
x est vrai.
L'un d'eux est vrai, non?
Si x est vrai et y est vrai.
Si x est vrai, et y est faux, l'un d'eux est toujours vrai.
Ainsi, X ou Y est toujours vrai.
Si x est faux, et y est vrai, l'un d'eux est toujours vrai, non?
y est vrai, dans ce cas.
Donc, il est vrai que X ou Y est vrai.
Seulement si x est faux et y est faux ne pas aller dans cette voie,
parce que ni x ni y est vrai.
Maintenant, si vous êtes à la recherche à l'écran en ce moment
et je me demandais ce que cela symbole est logique OU,
il a appelé la barre verticale.
Et si vous cherchez à votre clavier pendant une minute, que je fais maintenant,
il est généralement juste au-dessus de la Entrez la clé, sur la plupart des claviers,
sur la même touche que la barre oblique inverse.
Il est aussi généralement droit à côté des crochets.
Ainsi, il pourrait être une clé que vous ne sont pas très typé dans le passé.
Mais, si vous êtes jamais faire comparaisons logiques,
que nous allons faire un beaucoup dans le cours, il est
va être utile de trouver cette clé et l'utiliser.
Donc, il est habituellement sur la même touche comme anti-slash juste au-dessus Entrez.
>> L'opérateur logique finale est pas.
Et non est assez simple.
On inverse la valeur de son opérande.
Si x est vrai, alors pas x est faux.
Si x est faux, alors non x est vrai.
Parfois, vous entendrez ce symbole prononcé comme Bang ou d'exclamation
ou non.
Il est à peu près la même chose.
Dans le cas où vous entendez celle parlée et vous n'êtes pas sûr de ce que cela signifie,
il est juste l'exclamation le point, mais il est parfois
appelé un couple des choses différentes.
Tout droit, de sorte que prend soin des opérateurs logiques.
Donc, nous allons parler de opérateurs relationnels.
Encore une fois, si vous êtes familier avec ce arithmétique de retour à l'école primaire,
vous êtes probablement familier avec la façon dont ces travaux déjà.
Ceux-ci se comportent exactement comme vous le souhaitiez.
Donc moins il est vrai, dans ce Par exemple, si x est inférieur à y.
Alors, si x est 4 et y est 6, x est inférieur à y.
C'est vrai.
Inférieur ou égal à fonctionne assez similaire.
Si x est 4 et y est 4, alors x est inférieur ou égal à y.
Plus grand que. x est supérieur à y.
Et supérieure ou égale à x est supérieur ou égal à y.
Si cela est vrai, alors vous allez passer cette expression,
et vous allez vers le bas ce chemin sur la route.
Si vous avez un si x est supérieur à y, et x est, en effet, est plus grand que y,
vous ferez tout ce qui est soumis à cette condition.
>> Remarquez que nous ne disposons pas d'un caractère unique pour moins de
ou égale à, comme vous pourriez être familier avec les manuels de mathématiques.
Donc, nous avons le moins de symbole, suivi d'un signe égal.
Voilà comment nous représentons inférieure ou égale à.
Et de même, que faisons-nous pour supérieure ou égale à.
>> Les deux derniers relationnelle les opérateurs qui sont importantes
testent pour l'égalité et l'inégalité.
Donc, si x est égal à égal y est vrai si la valeur de x et y est le même.
Si x est 10 et y est 10, alors x est égal à égal y est vrai.
Si x est 10 et y est 11, x est égal à égal y est pas vrai.
Nous pouvons également tester l'inégalité en utilisant point d'exclamation ou Bang ou non,
de nouveau.
Si x est pas égal à y, si voilà le test que nous utilisons ici,
nous serions bon d'aller.
Alors, si x est différent de y, on va aller dans cette voie.
>> Soyez très prudent ici.
Il est un mistake-- vraiment commun et celui que je certainement fait beaucoup quand
Je devenais started-- à confondre accidentellement
l'opérateur d'affectation, égaux simples, pour l'opérateur de comparaison d'égalité,
égaux doubles.
Il va conduire à une certaine bizarre comportement dans votre code,
et généralement le compilateur vous avertir lorsque vous essayez
et de compiler votre code, mais parfois vous pourriez être en mesure de se faufiler par.
Il est pas nécessairement une bonne chose que vous faufiler par, cependant.
Juste si vous faites un test de l'inégalité,
si vous vérifier si deux différentes variables ont la même valeur
l'intérieur d'eux, assurez-vous d'utiliser égal à égal, et pas égaux simples.
Et de cette façon que votre programme avoir le comportement que vous souhaitez.
Je suis Doug Lloyd et ceci est CS50.