[Música tocando] DOUG LLOYD: Oi, então vamos falar sobre operadores em C. Então, nós já vimos um, de fato, é igual ao operador de atribuição. Ela nos permite apenas colocar um valor em uma variável. Essa é a atribuição operador, único sinal de igual. A fim de manipular e trabalho com valores e variáveis ​​em C, temos um número de operadores à nossa disposição que podemos usar. Vamos dar uma olhada alguns dos mais comuns começando com operadores aritméticos. Como você poderia esperar, não podemos fazer operações matemáticas básicas bonitas em C. Nós podemos adicionar, subtrair, multiplicar e Divide números usando mais, menos, estrela, and slash, respectivamente. Aqui está um par de linhas de código em que fazemos isso. Então, nós temos int x é igual a y mais 1. Vamos supor que em algum lugar acima esta linha de código nós tínhamos dito int y é igual a 10. Qual é o valor de x depois que eu executar esta primeira linha de código? Será que quis dizer 11? Você tinha razão. Por que é que? Bem, y foi de 10. Alguns int Eu estou dizendo x é igual a 10 mais 1. 10 + 1 é de 11. Assim, o valor fica 11 armazenado na variável x. Não é tão ruim, certo? Como sobre esta próxima linha de código? x é igual a 5 x vezes. Bem, antes de executado esta linha de código, foi de 11 x. Então, o que é o valor de x após esta linha de código? Tome um segundo. Então, x é igual a 5 x vezes. x foi de 11. Assim, x for igual a 11 vezes 5. Ou 55. Então, se você disse que 55, você estaria certo. Agora, pode ser um pouco confusa, mas com a maneira que a atribuição funciona em C é o valor à direita fica atribuído ao valor do lado esquerdo. Então, primeiro avaliamos x 5 vezes. Assim, 11 vezes 5 é 55. E então nós armazenar esse valor em x. O 11, que estava lá antes de ser agora substituídos. Assim, o valor de x é agora 55. Esperemos que isso é bastante simples. Há um outro operador que você tem provavelmente não necessariamente ouvido chamado isso, mas você tem certamente trabalhou com no passado se você se lembra seus dias de long divisão caminho de volta na escola. É o chamado operador módulo. O módulo faz é dá-lhe o restante quando você divide dois números juntos. Então, se eu disser 13 dividido por 4, o que é o resto? E esse valor seria calculado pelo operador módulo. Então, eu tenho uma linha de código aqui, int m é igual a 13 mod 4. E eu digo aqui em um comentário valor que m é agora um. Por que digo isso? Bem, fazer a longa divisão no seu cabeça, se você pense comigo por um segundo. Então, eu tenho 4 dividido por 13. 4 13 entra em três vezes com um resto de 1. Então, basicamente, todo o operador módulo faz é ele diz-lhe quando você divisão, você recebe o restante. Você pode pensar que é, na verdade, não é uma coisa muito útil, mas você ficaria surpreso, na verdade, pela freqüência com que o módulo operador pode vir a calhar. Há um par de problemas vamos fazer CS50 que lidar com isso. Também é bom para fazer coisas como número aleatório. Assim, por exemplo, se você já ouviu falar de um gerador de números aleatórios, que vai lhe dar um número entre 0 e um número enorme. Mas talvez você realmente só precisa de um número de 0 a 20. Se você usar o operador de módulo em que o número que gigante é gerada pela gerador de números aleatórios, você está indo para tomar qualquer enorme valor que é, dividi-lo por 20, e obter o restante. O restante só pode ser um valor de 0 a 19 de. Então, você usa operador módulo de aproveitar esta enorme número e talhar-lo em algo um pouco mais significativa. Tenho certeza que você será capaz de utilizar tanto daqueles em algum momento no futuro, em CS50. Assim, C também nos dá uma maneira para aplicar uma aritmética operador a uma única variável em um pouco mais de taquigrafia. Assim, no slide anterior, vimos x é igual a 5 x vezes. Isso funcionou. x 5 vezes, então fica armazenado de volta em x. Há um caminho mais curto para fazê-lo, o pensamento, e é as vezes sintaxe x é igual a 5. É exatamente a mesma coisa como dizendo x é igual a 5 x vezes. É apenas um pouco caminho mais curto para fazê-lo. E quando você vê alguma código de distribuição ou você veja alguns exemplos de código que faz coisas como esta, apenas estar familiarizado com o que significa que a sintaxe. Você certamente não tem para usá-lo, mas se o fizer, ele pode fazer o seu código olhar um pouco mais liso. E sei que você também pode usar qualquer um os diferentes operadores que já visto antes em vez de vezes. Você poderia dizer que é igual a 5 x mais, menos é igual a 5, vezes, dividir e mod. Todos os trabalhos. Há também algo que é tão comum em C que nós decidimos refinar que ainda mais. Incrementar uma variável por 1 ou diminuindo uma variável por 1 é um coisa-- tão comum, especialmente quando falamos de laços um pouco mais tarde on-- que nós decidimos, em vez de dizendo algo como x mais é igual a 1, ou x é igual x mais 1, nós temos mesmo curto entregou que para x plus plus. Assim, x for igual a X mais 1, x é igual a 1, mais, e x plus plus todos fazem a mesma coisa. Eles todos incremento x por 1. Mas essa incrementação e diminuindo até 1 é tão comum que nós temos plus plus e minus minus que nos permitem taquigrafia que ainda mais. Então, vamos mudar de marcha para segunda e falar sobre expressões booleanas. Tudo que também são uma espécie de cair a categoria geral de operadores. Mas expressões booleanas, ao contrário dos operadores aritméticos, são usados ​​para comparar os valores. Assim, novamente, todas as expressões booleanas em C avaliar a um de dois valores possíveis, lembro. Verdadeiro ou falso. Isso é os dois únicos valores que Variável booleana pode assumir. Podemos usar os resultados de uma expressão booleana em uma série de maneiras em programação. Na verdade, você poderá fazendo isso bastante. Por exemplo, podemos decidir, bem, se alguma condição for verdadeira, talvez eu vou aproveitar esta ramificar para baixo meu código. A condicional, por assim dizer. Vamos aprender sobre aqueles em breve também. Ou talvez, enquanto isso é verdade, eu quero continuar fazendo isso mais e mais e mais. Um loop. Em ambos os casos, sei que estamos usando uma expressão booleana, um verdadeiro ou falso, para decidir se quer ou não para tomar um caminho particular. Às vezes, quando estamos trabalhando com expressões Booleanas, vamos usar variáveis ​​do tipo Bool. Você pode ter declarado um Bool digitado variável, e você vai usar em sua Expressão booleana. Mas nem sempre você tem que fazer. Como se constata, em C, todos os não-0 valor é o mesmo que dizer verdadeiro. Se você tivesse declarado variável do tipo booleano, e atribuiu-lhe o verdadeiro valor, que é o mesmo que declarar um inteiro e atribuindo-lhe o valor 1, 2, 3, ou realmente de qualquer valor que seja diferente de 0. Porque em C, cada valor diferente de 0 é verdade. 0, por outro lado, é falsa. Isso pode vir em calhar mais tarde a saber, mas apenas algo para manter em mente. Nem sempre tem que usar Variáveis ​​do tipo Boolean Quando nós estão trabalhando com expressões booleanas. Existem dois tipos principais de booleano expressões que vamos trabalhar com. Operadores lógicos e operadores relacionais. A língua há não terrivelmente importante. É realmente apenas como eu estou agrupando-os. E você certamente vai, penso eu, rapidamente perceber o que um operador relacional é, com base no que eles são quando nós falar sobre eles em um segundo. Mas não se preocupe, necessariamente, memorizar o operador lógico prazo ou operador relacional. Estou apenas usando-o para grupo -los de uma maneira lógica. Então, vamos dar uma olhada os três operadores lógicos que vamos ver um bom bit na programação em CS50 e na programação em geral. E lógico é verdade, se e somente se ambos os operandos são verdadeiros. Caso contrário, false. Onde é que isso significa? Então, vamos dizer que eu estou em uma apontar no meu código onde eu tenho duas variáveis, x e y. E eu quero decidir se fazer alguma coisa no meu código com base em se é verdade x e y é verdadeiro. Eu só quero fazê-lo se ambos são verdadeiros, caso contrário, eu não quero ir por esse caminho, porque ele não está indo para me ajudar. O que posso dizer é que se x e y &. Isso vai ser um booleano lógico expressão comparando x e y e tomar um caminho certo com base em quais são seus valores. Assim, se x é verdadeira e y é verdadeiro com base nesta tabela de verdade aqui, só então vamos ir por esse caminho. Se x, y & &. É só o true-- e só é verdadeiro se x é verdadeira e y é verdadeiro. Se qualquer um é falso, como podemos ver tabela verdade, em seguida, ambos x e y não são verdadeiras. E assim, x e y e é falsa. OU lógico é verdadeira se, e somente Se pelo menos um operando é verdadeiro. Caso contrário, false. Então E lógico necessário ambos x e y para ser verdade. OR lógico requer x para ser verdade ou y para ser verdade ou ambos x e y para ser verdade. Então, novamente, nós tipo de encontrar -nos numa situação onde estamos indo ao nosso código, e chegamos a uma bifurcação na estrada. E nós queremos ir por um em particular caminho se x é verdadeiro ou y é verdade, mas não necessariamente, se ambas são verdadeiras. Mas, possivelmente, se ambas são verdadeiras. Portanto, se x é verdadeira e Y é verdade, nós vamos enveredar por esse caminho. X é verdadeiro. Um deles é verdade, certo? Se X é verdadeira e y é verdadeiro. Se x é verdadeiro, e y é falso, um deles é ainda verdadeiro. Então, X ou Y ainda é verdade. Se x é falsa, e y é verdadeiro, um deles é ainda verdade, certo? Y é verdade, neste caso. Então, é verdade que x ou y é verdadeiro. Só se x e y é falso é falso nós não ir por esse caminho, porque nem x nem y é verdadeiro. Agora, se você está procurando na tela agora e querendo saber o que símbolo é de OU lógico, ele é chamado a barra vertical. E se você olhar para o seu teclado por um minuto, como eu estou fazendo agora, normalmente é um pouco acima do Tecla Enter, na maioria dos teclados, na mesma tecla que a barra invertida. Também é geralmente à direita ao lado dos colchetes. Portanto, pode ser uma chave que você não digitou muito no passado. Mas, se você está sempre fazendo comparações lógicas, como nós vamos estar fazendo um muito no curso, é vai ser útil para encontrar a chave e usá-lo. Então, é geralmente na mesma tecla como barra invertida logo acima Enter. O operador lógico final não é. E NÃO está bastante simples. Ele inverte o valor de seu operando. Se x é verdade, então não x é falso. Se x é falso, então não é verdade x. Às vezes você vai ouvir este símbolo pronunciado como estrondo ou de exclamação ou não. É praticamente a mesma coisa. No caso de você saber que falado e você não tem certeza o que isso significa, é apenas a exclamação ponto, mas às vezes é chamado um par de coisas diferentes. Tudo bem, de modo que leva cuidar de operadores lógicos. Então, vamos falar sobre operadores relacionais. Novamente, se você estiver familiarizado com este aritmética volta na escola, você provavelmente está familiarizado com a forma como estes trabalhos já. Estas se comportam exatamente como você esperaria. Então, a menos de que é verdade, neste exemplo, se x é menor que y. Assim, se x é 4 e y é 6, x é menor que y. Isso é verdade. Menos do que ou igual a funciona muito semelhante. Se x é 4, e y é 4, então x é menor ou igual a y. Melhor que. x é maior que y. E maior do que ou igual a, X é maior do que ou igual a y. Se for verdade, então você passar essa expressão, e você vai descer esse caminho na estrada. Se você tem um caso x é maior que y, e X é, de facto, é maior do que Y, você vai fazer o que for sujeita a essa condição. Observe que não temos um caráter único para menos de ou igual a, como você pode ser familiarizado com a partir de livros didáticos de matemática. Então, temos a menos de símbolo, seguido por um sinal de igual. É assim que nós representamos menos do que ou igual a. E da mesma forma, fazemos isso para maior ou igual a. Os dois relacional definitiva operadores que são importantes está testando para a igualdade e desigualdade. Assim, se x é igual é igual a y, é verdade Se X e Y do valor é o mesmo. Se x é 10, y é 10, e, em seguida, x é igual a é igual a y é verdadeiro. Se x é 10 e y é 11, X é igual a é igual a y não é verdade. Nós também pode testar para a desigualdade usando ponto de exclamação ou estrondo ou não, mais uma vez. Se X não é igual a y, se esse é o teste que estamos usando aqui, que seria bom para ir. Assim, se x não é igual y, nós vamos enveredar por esse caminho. Tenha muito cuidado aqui. É uma mistake-- realmente comum e que eu certamente fez bastante quando Eu estava ficando started-- confundir acidentalmente o operador de atribuição, iguais individuais, para o operador de comparação igualdade, par de iguais. Ele vai levar a algum estranho comportamento em seu código, e, geralmente, o compilador avisá-lo sobre isso quando você tenta e compilar o código, mas às vezes você pode ser capaz de esgueirar-se por ela. Não é necessariamente uma coisa boa que você esgueirar-se por, apesar de tudo. Só por isso, se você está fazendo um teste de desigualdade, se você está verificando se dois diferentes variáveis ​​têm o mesmo valor dentro deles, certifique-se de usar é igual iguais, e iguais não individuais. E de que maneira o programa irá tem o comportamento que você pretende. Eu sou Doug Lloyd e este é CS50.