< Return to Video

Estrutura de decisão (IF) (Versão em vídeo)

  • 0:00 - 0:05
    Outra animação. Dessa vez temos uma
    bola se movendo pela tela,
  • 0:05 - 0:07
    e vocês sabem com isso é feito.
  • 0:07 - 0:10
    Temos uma variável, "x" que nos diz
    a posição da bola,
  • 0:10 - 0:14
    a variável "speed" que nos diz a distância
    que a bola percorre cada vez.
  • 0:14 - 0:16
    E o loop onde é redesenhado
    o fundo toda vez,
  • 0:16 - 0:21
    preenchendo as cores e desenhando uma
    elipse a partir da posição x, e toda vez,
  • 0:21 - 0:25
    mudamos "x" para ter o antigo valor de "x"
    mais o valor da variável "speed".
  • 0:25 - 0:29
    Então se deixarmos "speed" menor,
    e reiniciarmos
  • 0:29 - 0:31
    veja que a bola se move mais devagar.
  • 0:31 - 0:36
    Ou posso deixar o valor negativo, e se
    moverá ao contrário, ou deixar como zero
  • 0:36 - 0:38
    e bola deve parar de mover.
  • 0:38 - 0:40
    Mas enquanto a velocidade
    for maior que zero,
  • 0:40 - 0:43
    eventualmente a bola irá
    se mover pela tela.
  • 0:43 - 0:46
    Sempre posso apertar o botão reiniciar
    para trazê-la de volta,
  • 0:46 - 0:49
    mas você sabe, depois de um tempo,
    isso fica chato.
  • 0:49 - 0:53
    Você reinicia e reinicia...
  • 0:53 - 0:56
    E se fizermos assim: Quando a bola
    atingir o lado direito da tela
  • 0:56 - 1:01
    em vez de ir para fora da tela como agora,
    eu quero que ela volte.
  • 1:01 - 1:07
    Para fazer a bola voltar, é só dizer que a
    variável "speed" será menos cinco.
  • 1:07 - 1:10
    Se eu deixar a velocidade negativa,
    então ela fará o caminho contrário.
  • 1:10 - 1:12
    Mas ai está o problema.
  • 1:12 - 1:17
    Eu só quero mudar a velocidade se
    a bola tiver atingido a lado direto.
  • 1:17 - 1:25
    Acho que já disse isso. Só quero mudar a
    velocidade SE ela chegar do lado direito.
  • 1:25 - 1:27
    Eu acho que isso pede o uso
    da condicional "if".
  • 1:27 - 1:31
    Até agora, apenas demos ao computador
    comandos para correr, e mais nada.
  • 1:31 - 1:33
    Declarações "if" é como dizer:
  • 1:33 - 1:36
    "Ei cara, quero que você
    execute esse código,
  • 1:36 - 1:39
    mas somente sob circunstâncias
    específicas."
  • 1:39 - 1:43
    "Então mude a velocidade da bola só se ela
    chegar do lado direito".
  • 1:43 - 1:45
    E aqui está como deve ficar.
  • 1:45 - 1:51
    O que você precisa fazer é digitar "if" e
    um par de parênteses e de colchetes.
  • 1:51 - 1:54
    Dentro do parêntese
    colocaremos a condição.
  • 1:54 - 1:57
    E dentro dos colchetes colocaremos
    o código a ser executado.
  • 1:57 - 2:02
    Assim, o modo como funciona é:
    "Se essa condição for verdadeira
  • 2:02 - 2:04
    execute esse código.
    Se não for, não incomode."
  • 2:04 - 2:07
    No nosso caso, a condição é a
    bola atingir o lado direito da tela.
  • 2:07 - 2:10
    Como sabemos se a bola
    atingiu o lado direito?
  • 2:10 - 2:13
    Temos a variável "x" que nos diz
    onde a bola está,
  • 2:13 - 2:23
    e sei que o limite da tela é a
    posição 400, então vejamos.
  • 2:23 - 2:30
    Quando "x" for maior que 400, então
    sabemos que a bola passou do lado direito.
  • 2:30 - 2:31
    Vejamos como isso funciona
  • 2:31 - 2:35
    No código a ser executado, como já falei
    estamos apenas mudando a velocidade.
  • 2:35 - 2:38
    A velocidade será menos cinco.
  • 2:38 - 2:42
    Vamos apertar reiniciar
    e ver o que acontece.
  • 2:42 - 2:46
    Dessa vez, quando a bola atingir
    o limite do lado direito, ela volta!
  • 2:46 - 2:47
    E fica indo pra fora da tela.
  • 2:47 - 2:49
    Mas podemos fazer o mesmo
    do outro lado.
  • 2:49 - 2:53
    Dessa vez, verificaremos se ela
    atingiu o limite esquerdo.
  • 2:53 - 3:03
    Isso é, quando "x" for menor que zero,
    e deixarmos a velocidade positiva de novo.
  • 3:04 - 3:07
    Vou reiniciar.
  • 3:07 - 3:08
    E dessa vez...
  • 3:15 - 3:17
    Funciona.
  • 3:17 - 3:21
    Sei que estamos verificando se a bola
    ultrapassou as bordas da tela,
  • 3:21 - 3:23
    mas parece que passou um
    pouco das bordas.
  • 3:23 - 3:29
    Lembrando que esses 2 parâmetros controlam
    onde o centro da elipse está desenhada.
  • 3:29 - 3:35
    Agora, quando o centro atingir a borda,
    metade da elipse terá passado do limite.
  • 3:35 - 3:39
    Se queremos corrigir isso, vamos
    parar a elipse um pouco antes.
  • 3:39 - 3:45
    Se o nosso limite é 400, queremos parar
    a elipse quando chegar aqui,
  • 3:45 - 3:51
    e podemos na chamada dessa função
    dizer que a elipse tem uma largura de 50,
  • 3:51 - 3:57
    isso significa que do centro
    até a borda, será de 25.
  • 3:57 - 4:05
    Então queremos pará-la quando o centro
    atingir 375, porque é 400 menos 25.
  • 4:05 - 4:10
    Então ao invés de checar se "x" é maior
    que 400, verificamos se é maior que 375.
  • 4:10 - 4:15
    Invés de checar se "x" é menor que zero,
    vou verificar se é menor que 25.
  • 4:17 - 4:21
    E agora está perfeito!
    Veja a bola quicando.
  • 4:21 - 4:23
    Legendado por [Valter Bigeli].
    Revisado por [Fernando dos Reis]
Title:
Estrutura de decisão (IF) (Versão em vídeo)
Description:

Essa é apenas uma imagem de nosso passo a passo interativo, preparado para deixar a legendagem e tradução mais fácil. É melhor assistir nossos passo passo aqui:
https://www.khanacademy.org/cs/programming/

more » « less
Video Language:
English
Duration:
04:23

Portuguese, Brazilian subtitles

Revisions