If you're seeing this message, it means we're having trouble loading external resources on our website.

Se você está atrás de um filtro da Web, certifique-se que os domínios *.kastatic.org e *.kasandbox.org estão desbloqueados.

Conteúdo principal

Revisão: Lógica e Instruções if

Esta é uma revisão do que cobrimos nesse tutorial sobre lógica e estruturas condicionais if.
Frequentemente, queremos ser capazes de "condicionalmente" fazer algo em nossos programas - queremos ser capazes de dizer "se isto for verdadeiro, então faça X, mas se este outro for verdadeiro, então faça Y." É como quando acordamos de manhã - "se estiver chovendo, então levarei um guarda-chuva, mas se estiver fazendo sol, eu usarei óculos escuros." Podemos fazer algo condicionalmente em nossos programas usando estruturas condicionais if e estruturas condicionais if/else combinadas com expressões condicionais.
Uma estrutura condicional if diz ao programa para executar um bloco de código, contanto que uma condição seja verdadeira. No código abaixo, nós exibimos uma mensagem somente se x for maior que 0:
var x = 5;

if (x > 0) {
  text('x é um número positivo!', 200, 200);
}
Já que x é 5, que é maior que 0, nós veremos a mensagem na tela. Se alterássemos x para -1, não veríamos de forma alguma a mensagem aparecer na tela, já que x não seria maior que 0.
O x > 0 é o que chamamos de uma expressão condicional - o que significa uma expressão que é avaliada como verdadeira ou falsa. Quando um valor é ou verdadeiro ou falso, podemos chamá-lo de valor booleano (ao contrário de um número ou uma string). Por exemplo, poderíamos simplesmente exibir a expressão condicional:
text(x > 0, 200, 200); // Exibe "true", que é verdadeiro em inglês
Também podemos armazená-la em uma variável e exibi-lá:
var ePositivo = x > 0;
text(ePositivo, 200, 200);
Poderíamos então dizer que ePositivo armazena um valor booleano, porque ele pode apenas assumir o valor true ou false, dependendo do que atribuirmos a x.
Temos muitas maneiras de criar expressões condicionais que irão avaliar para verdadeiro ou falso, porque temos muitos operadores de comparação. Aqui estão os mais populares:
Assumindo a variável a seguir, seguem os operadores de comparação mais comuns e expressões que seriam verdade com o uso deles:
var ePositivo = x > 0;
text(ePositivo, 200, 200);
OperadorSignificadoExpressões verdadeiras
===Igualdade EstritamyAge === 28
!==Desigualdade EstritamyAge !== 2928 !== 29
>Maior quemyAge > 2528 > 25
>=Maior que ou igualmyAge >= 2828 >= 28
<Menor quemyAge < 3028 < 30
<=Menor que ou igualmyAge <= 2828 <= 28
É um erro muito comum confundir o operador de atribuição (=) com o operador de igualdade (===), porque ambos usam sinais de igualdade, mas eles são bem diferentes. O operador de atribuição na verdade irá alterar o valor da variável, enquanto que o operador de igualdade irá apenas ler o valor da variável e ver se é igual a alguma coisa. Por exemplo:
var x = 2 + 2; // Define a variável igual a 4

if (x === 4) { // Faz a pergunta, "a variável é igual a 4?"
   text("sim, 2 + 2 = 4!", 200, 200);
}
Algumas vezes queremos combinar múltiplas comparações em uma expressão condicional, e é por isso que temos operadores lógicos. Esses operadores nos permitem dizer algo como "se ambos X e Y são verdadeiros" ou "se X ou Y são verdadeiros" em nossos programas.
Se quisermos que duas condições sejam verdadeiras, podemos usar o operador && ("e"):
var grausFora = 70;
var numeroNuvens = 50;
if (grausFora > 70 && numeroNuvens < 5) {
  text("Use protetor solar!", 200, 200);
}
Isso é frequentemente usado aqui em nossos programas para verificar se o cursor do mouse de um usuário está dentro de um retângulo (para simular um botão), caso em que precisamos de múltiplos operadores &&:
rect(100, 50, 100, 100); 

mousePressionado = function() {
    if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
      text("Você pressionou o mouse!", 80, 75);
    }
};
Se quisermos que ao menos uma das condições seja verdadeira, então podemos usar o operador || ("ou"):
var degreesOutside = 70;
var numberOfClouds = 50;
if (degreesOutside > 70 || numberOfClouds < 5) {
  text("Use filtro solar se estiver calor ou se houver poucas nuvens!", 200, 200);
}
Podemos usar ambos && e || na mesma expressão, caso tivermos alguma condição muito complexa para verificar. Apenas devemos usar parênteses para agrupar as expressões, de forma que o programa não fique confuso sobre em qual ordem ele deve avaliá-las:
var minhaIdade = 28;
if ((minhaIdade >= 0 && minhaIdade < 3)  || myAge > 90) {
  println('Você não está no seu ápice.');
}
Agora vamos voltar às estruturas condicionais if. Frequentemente queremos executar algum bloco de código no caso da condição if não ser verdadeira - nesse caso, adicionamos uma estrutura condicional else.
var idade = 28;
if (idade > 18) {
  println('Ei, você pode dirigir!');
} else {
  println('Desculpe, você precisa de ' + (18 - idade) + ' anos ainda para que possa dirigir.');
}
Às vezes queremos verificar múltiplas condições e fazer coisas diferentes em cada uma delas, nesse caso podemos usar else if:
var idade = 20;
if (idade >= 35) {
  println('Você pode votar E assumir qualquer lugar no governo!');
} else if (idade >= 29) {
  println('Você pode votar E concorrer ao senado!'');
} else if (idade >= 16) {
  println('Você pode votar!');
} else {
  println('Você não tem voz no governo');
}
Você pode continuar verificando condições tanto quanto quiser - apenas se certifique de que cada uma das condições é realmente acessível. Teste seu código alterando as variáveis até que você tenha examinado dentro de cada bloco de código, para que você saiba que tudo está funcionando.
Como você pode perceber, condicionais são uma parte importante da programação e nos permitem criar programas mais robustos e flexíveis.

Quer participar da conversa?

  • Avatar starky tree style do usuário Davi Seer
    Por favor, traduzam o quanto antes, para o benefício de todos! ;)
    (8 votos)
    Avatar Default Khan Academy avatar do usuário
    • Avatar female robot amelia style do usuário Airton Vieira dos Santos
      Pelo Google Chrome
      Esta é uma revisão do que nós cobrimos neste tutorial na lógica e se declarações.
      Muitas vezes queremos ser capaz de "condicionalmente" fazer as coisas em nossos programas - nós queremos ser capazes de dizer "se esta coisa é verdade, então fazer X, mas se essa outra coisa é verdade, então fazer Y." É como quando acordamos de manhã - "se o seu chovendo lá fora, então eu levar um guarda-chuva, mas se seu ensolarado, eu uso óculos de sol." Podemos fazer coisas condicionalmente em nossos programas usando instruções if e if / else combinada com expressões condicionais .
      Uma declaração se diz ao programa para executar um bloco de código, desde que uma condição é verdadeira. No código abaixo, que uma mensagem de saída apenas se x é superior a 0:
      var x = 5;

      se (x> 0) {
      texto ("x é um número positivo! ', 200, 200);
      }
      Como x é 5, que é maior que 0, queríamos ver a mensagem na tela. Se mudássemos x -1, não veríamos a mensagem aparecer em tudo, desde x não seria maior que 0.
      O x> 0 é o que chamamos de expressão condicional - o que significa que é uma expressão que é avaliada como verdadeira ou falsa . Quando um valor é verdadeiro ou falso , chamamos isso de um boolean valor (em oposição a um número ou uma string). Por exemplo, nós poderíamos apenas exibir a expressão condicional:
      texto (x> 0, 200, 200); // Displays "true"
      Nós também poderia armazená-lo em uma variável e, em seguida, exibi-lo:
      var isPositive = x> 0;
      texto (isPositive, 200, 200);
      Teríamos, então, dizer que isPositive está armazenando um valor booleano, porque é tanto verdadeiro ou falso , dependendo do que vamos definir x para.
      Nós temos muitas maneiras de criar expressões condicionais que irá avaliar a verdadeira ou falsa , porque temos muitos operadores de comparação. Aqui estão os mais populares:
      Assumindo a seguinte variável, aqui estão os operadores de comparação mais comuns e expressões que seria verdade com eles:
      foi myAge = 28;
      Operador Significado Expressões verdadeiras
      === Igualdade estrita minha_idade 28 ===
      ! == Desigualdade estrita myAge! == 29
      28! 29 ==
      > Melhor que myAge> 25
      28> 25
      > = Maior ou igual minha_idade> 28 =
      28> = 28
      < menor que Myagi <30
      28 <30
      <= Menor ou igual Myagi <28 =
      28 <= 28
      É um erro muito comum confundir o operador de atribuição ( = ) com o operador de igualdade ( === ), porque ambos usam sinais iguais, mas eles são bastante diferentes. O operador de atribuição vai realmente mudar o valor da variável, ao passo que o operador de igualdade vai apenas ler o valor da variável e ver se é igual a alguma coisa. por exemplo:
      var x = 2 + 2; // Define-la igual a 4

      if (x === 4) {// Faz a pergunta, "faz isto igual a 4?"
      texto ("sim, 2 + 2 = 4!", 200, 200);
      }
      Nós às vezes querem combinar múltiplas comparações juntos em uma expressão condicional, e é por isso que nós temos operadores lógicos . Estes operadores deixe-nos dizer coisas como "se ambos X e Y são verdadeiras" ou "se X ou Y são verdadeiras" em nossos programas.
      Se queremos exigir que duas condições são verdadeiras, podemos usar o && operador ("e"):
      var degreesOutside = 70;
      numberOfClouds var = 50;
      if (degreesOutside> 70 && numberOfClouds <5) {
      texto ("Usar a tela do sol!", 200, 200);
      }
      Muitas vezes usamos isso em nossos programas aqui para verificar que a posição do mouse de um usuário estiver dentro de um retângulo (para imitar um botão), caso em que precisamos de vários && operadores:
      rect (100, 50, 100, 100);

      mousePressed = function () {
      if (mouseX> 100 && mouseX <200 && mouseY> 50 && mouseY <150) {
      texto ("Você pressionou-o!", 80, 75);
      }
      };
      Se só se preocupam que pelo menos uma condição for verdadeira, então podemos usar o || operador ("ou"):
      var degreesOutside = 70;
      numberOfClouds var = 50;
      if (degreesOutside <70 || numberOfClouds <5) {
      TEXT ("Usar a tela do sol, mesmo se não é quente!", 200, 200);
      }
      Podemos usar tanto && e || na mesma expressão, se tivermos alguma condição muito complexa para verificar. Basta usar parênteses para agrupar expressões, para que o programa não é confuso sobre o fim de avaliá-los:
      var myAge = 28;
      if ((myAge> = 0 && myAge <3) || myAge <90) {
      println ("você \ 're não completamente em seu pico.');
      }
      Agora vamos voltar a se declarações . Muitas vezes queremos executar algum bloco de código no caso de que a condição se não era verdade - nesse caso, nós adicionamos uma outra declaração .
      var age = 28;
      if (idade> 16) {
      println ("Yay, você pode dirigir! ');
      } else {
      println ("Desculpe, mas você tem '+ (16 - idade) +" anos até que você pode dirigir. ');
      }
      Às vezes queremos verificar várias condições, e fazer coisas diferentes com base em cada caso, em que podemos usar else if :
      idade var = 20;
      if (idade> = 35) {
      println ("você pode votar e ocupar qualquer lugar no governo! ');
      } else if (idade> = 25) {
      println ("você pode votar e concorrer ao Senado ! ');
      } else if (idade> = 18) {
      println ("Você pode votar! ');
      } else {
      println ("Você não tem voz no governo"!);
      }
      Você pode manter condições de controlo, tanto quanto você quer - apenas certifique-se de que cada uma de suas condições é realmente acessível. Teste o seu código, alterando variáveis ​​até que você faz dentro de cada um dos blocos de código, de modo que você sabe que todas as obras.
      Como você pode ver espero que agora, condicionais são uma parte importante da programação e deixe-nos criar programas muito mais poderosos e flexíveis.
      (30 votos)
  • Avatar marcimus pink style do usuário Helen Piva Piazzoli
    obrigado me auxiliou bastante
    (6 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar blobby green style do usuário Robson Sousa
    Olá, alguém sabe me dizer se há um programa bom como esse que usamos nos estudos fora da plataforma Khan Academy para praticar esses códigos, com a mesma qualidade. tipo que há um exemplo do lado ou não.

    Ficarei grato se responderem, obrigado!

    :D
    (6 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar leafers tree style do usuário Vinícius Alves
    Parece que vocês misturaram as aspas em 'Você pode votar E concorrer ao senado!''...
    (5 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar piceratops seedling style do usuário Ana
    " Isso é frequentemente usado aqui em nossos programas para verificar se o cursor do mouse de um usuário está dentro de um retângulo (para simular um botão), caso em que precisamos de múltiplos operadores &&:
    rect(100, 50, 100, 100);

    mousePressionado = function() {
    if (mouseX > 100 && mouseX < 200 && mouseY > 50 && mouseY < 150) {
    text("Você pressionou o mouse!", 80, 75);
    }
    }; "

    ainda n entendi, como sei os valores de mouseX e mouse Y?
    (5 votos)
    Avatar Default Khan Academy avatar do usuário
    • Avatar primosaur seed style do usuário Dennis Tavares
      Os valores de mouseX e mouseY variam de acordo com a posição do ponteiro do seu mouse, o código abaixo é legal para brincar e entender.

      var position = 20;
      var speed = 3;

      draw = function() {
      background (202, 255, 97);

      fill(66, 66, 66);
      position = position + speed;
      ellipse(position, mouseY, 50, 50);

      if (mouseIsPressed) {
      ellipse(mouseX, position, 50, 50);
      }

      if (position > 375) {
      speed = -5;
      }

      if (position < 25) {
      speed = 5;
      }
      };
      (8 votos)
  • Avatar aqualine ultimate style do usuário Samuel Cardoso
    Muito bom!Acho lgl o khan fazer essas revisoes ajudam muito
    =D
    (4 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar aqualine ultimate style do usuário Priscila Geraldo
    var idade = 20;
    if (idade >= 35) {
    println('Você pode votar E assumir qualquer lugar no governo!');
    } else if (idade >= 29) {
    println('Você pode votar E concorrer ao senado!'');
    } else if (idade >= 16) {
    println('Você pode votar!');
    } else {
    println('Você não tem voz no governo');
    }
    (3 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar leafers sapling style do usuário Miguel
    não entendi bem, achei muito comfuso.
    (2 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar piceratops seedling style do usuário uchihad591
    deu pra tirar umas duvidas
    (2 votos)
    Avatar Default Khan Academy avatar do usuário
  • Avatar mr pants green style do usuário Sofiatavares2010
    O comando ‘println’ é o mesmo que usar ‘text’?
    (1 voto)
    Avatar Default Khan Academy avatar do usuário
Você entende inglês? Clique aqui para ver mais debates na versão em inglês do site da Khan Academy.