< Return to Video

If/Else Parte 2 (Versão em Vídeo)

  • 0:01 - 0:03
    Aqui está onde paramos com
    nosso jogo da moeda.
  • 0:03 - 0:06
    Começamos gerando um número
    aleatório entre 0 e 1,
  • 0:06 - 0:09
    e então arredondando o número
    para o inteiro mais próximo.
  • 0:09 - 0:12
    Então isto nos deu um número
    que era ou 0 ou 1.
  • 0:12 - 0:16
    E então nós ilustramos nossa moeda
    super-realista com esta elipse
  • 0:16 - 0:19
    que era ou roxa ou amarela,
    dependendo de qual número era.
  • 0:19 - 0:21
    E aqui está o código onde fizemos isso.
  • 0:21 - 0:25
    Dissemos que se o inteiro é igual a 0
    defina a cor de preenchimento para roxa,
  • 0:25 - 0:26
    caso contrário, defina como amarelo.
  • 0:26 - 0:28
    E então desenhamos uma moeda aqui.
  • 0:28 - 0:31
    Mas agora eu decidi que na verdade,
    minha moeda tem três lados.
  • 0:31 - 0:33
    Sim, uma moeda de três lados.
  • 0:33 - 0:34
    Então vamos adicionar um terceiro lado.
  • 0:34 - 0:37
    Começarei fazendo um número de 0 a 2,
  • 0:37 - 0:42
    depois que arrendondarmos isso,
    ele me dará um inteiro que será 0, 1 ou 2.
  • 0:42 - 0:44
    Mas se olharmos para
    o código de desenho,
  • 0:44 - 0:46
    estamos contando apenas
    para dois casos aqui.
  • 0:46 - 0:49
    Então se o inteiro é 0, torne-a roxa,
    caso contrário, torne-a amarela.
  • 0:49 - 0:52
    Mas agora, 'caso contrário' pode
    significar ou 1 ou 2.
  • 0:52 - 0:55
    Mas espere, e se eu fizesse a
    mesma coisa que fizemos antes,
  • 0:55 - 0:57
    mas dentro deste bloco else.
    Então escreverei apenas:
  • 0:57 - 1:04
    if integer é igual a 1 então defina a
    cor de preenchimento para amarela,
  • 1:04 - 1:06
    como era antes.
  • 1:06 - 1:11
    else, definiremos a cor para
    vermelha. Vermelho está muito bom.
  • 1:11 - 1:15
    O que isso significa é, se integer é
    igual a 0, defina a cor para roxo.
  • 1:16 - 1:19
    caso contrário, se é igual a 1,
    nós a tornaremos amarela.
  • 1:19 - 1:24
    senão, ou seja, se não for 0, não for 1,
    deve ser 2, tornaremos a cor vermelha.
  • 1:24 - 1:27
    Pressiono reiniciar um monte de vezes.
    Funciona!
  • 1:29 - 1:31
    Logo, se quisermos adicionar
    mais lados à minha moeda,
  • 1:31 - 1:36
    eu posso subir aqui, e fazer de 0 até 3,
    e depois aprofundar o bloco else
  • 1:36 - 1:38
    e adicionar mais if-else's
    e assim por diante,
  • 1:38 - 1:40
    até eu ter zilhões de blocos aninhados.
  • 1:40 - 1:45
    E apenas depois eu vou perceber que este
    código está nojento! Quero dizer, grosso!
  • 1:45 - 1:49
    O código deve ser fácil de ler e bonito,
    não tão feio quanto possível.
  • 1:49 - 1:50
    Por isso, isto é o que vamos fazer:
  • 1:50 - 1:53
    Sempre que você tiver apenas
    uma declaração if única
  • 1:53 - 1:55
    ou uma declaração if-else
    dentro de um bloco else
  • 1:55 - 1:59
    tal que signifique que não faremos
    nada mais fora destes blocos,
  • 1:59 - 2:05
    não estamos definindo a cor do traço,
    não temos mais declarações if, nada.
  • 2:05 - 2:07
    Tudo que temos é essa
    única declaração if,
  • 2:07 - 2:09
    e talvez ela venha com
    um bloco else.
  • 2:09 - 2:13
    Depois, podemos combinar esta condição
    com a linha anterior e dizer:
  • 2:13 - 2:18
    else if integer é igual a 1, defina a
    cor de preenchimento para amarelo.
  • 2:18 - 2:20
    e este último bloco else não está
    aninhado em lugar algum,
  • 2:20 - 2:22
    apenas vem bem no final por si só.
  • 2:22 - 2:23
    Ótimo!
  • 2:23 - 2:28
    Agora isso significa que, se integer
    é igual a 0, defina a cor para roxo,
  • 2:28 - 2:30
    caso contrário se integer é igual a 1,
    defina a cor para amarelo,
  • 2:30 - 2:34
    caso contrário, ou seja, se ambas forem
    falsas, então defina-a para vermelho.
  • 2:34 - 2:38
    Pressiono reiniciar um monte de vezes
    e você pode ver que ainda funciona
  • 2:38 - 2:42
    Ótimo! E a coisa legal disso é que podemos
    ter quantos else-if 's quisermos,
  • 2:42 - 2:45
    o que torna muito fácil para mim
    adicionar mais lados à minha moeda.
  • 2:45 - 2:49
    Então vamos fazer isso agora.
    Farei um número entre 0 e 3,
  • 2:49 - 2:56
    e então apenas adicionarei um bloco else
    a mais: else if integer é igual a 2.
  • 2:56 - 2:58
    Definiremos a cor de preenchimento para...
  • 2:58 - 3:01
    bem, estava vermelha antes
    então vamos mantê-la.
  • 3:01 - 3:04
    Depois, este último bloco else será
    para quando um integer for igual a 3,
  • 3:04 - 3:08
    ele o tornará azul. Ótimo!
  • 3:09 - 3:10
    Tudo certo. Então...
  • 3:10 - 3:13
    para que façamos isso, você sempre terá
    que começar com uma declaração if ,
  • 3:13 - 3:16
    e depois você pode ter
    quantos else-if 's quiser,
  • 3:16 - 3:18
    e então este último cara é opcional.
  • 3:18 - 3:22
    Na verdade, podemos fazer sem ele,
    e é possível que todos estes sejam falso,
  • 3:22 - 3:24
    então nenhum destes blocos é executado.
  • 3:24 - 3:26
    Porém, contanto que tenhamos aquilo lá,
  • 3:26 - 3:30
    então exatamente um destes
    blocos será executado.
  • 3:30 - 3:36
    Legal? Agora este é o caso onde você diz:
    if else-if else-if else,
  • 3:36 - 3:42
    ou apenas usa as boas e velhas declarações
    if como tínhamos no início,
  • 3:42 - 3:46
    então se o integer é igual a 3.
  • 3:46 - 3:51
    E isso é porque nunca é possível para
    integer ser igual a 0, e também 1, 2 ou 3.
  • 3:51 - 3:54
    Ótimo. Então essas condições
    são mutuamente exclusivas.
  • 3:54 - 3:57
    Sempre, apenas um destes blocos
    irá executar de qualquer forma.
  • 3:57 - 3:58
    Mas esse não é sempre o caso.
  • 3:58 - 4:02
    E se tentarmos criar um jogo como
    este sem arrendondar um inteiro?
  • 4:02 - 4:04
    Vou me livrar desta parte
    onde nós o arredondamos,
  • 4:04 - 4:07
    e a outra parte onde
    nós desenhamos a tela.
  • 4:07 - 4:09
    E vamos criar algumas regras
    novas para o meu jogo.
  • 4:09 - 4:13
    Então ainda estou gerando um
    número entre 0 e 3,
  • 4:13 - 4:17
    ponha mais alguma marca
    de escala na linha de número.
  • 4:17 - 4:23
    Vamos dizer que se o número cair
    entre 0 e 1 nós o tornaremos roxo.
  • 4:23 - 4:27
    Oh, isso não parece mesmo com
    um 'p'. Você entendeu.
  • 4:27 - 4:31
    E se cair entre 1 e 2,
    podemos fazê-lo amarelo.
  • 4:31 - 4:35
    E se cair entre 2 e 3, nós
    o tornaremos vermelho.
  • 4:35 - 4:39
    Ótimo. Vamos ver como podemos
    fazer isso com if e else-if 's
  • 4:39 - 4:43
    Eu posso começar dizendo se
    um número é menor que 1,
  • 4:43 - 4:48
    então se é menor que 1,
    e eu sei que é entre 0 e 3,
  • 4:48 - 4:51
    então deve estar neste intervalo,
  • 4:51 - 4:55
    depois, eu definirei a cor de
    preenchimento para ser roxa.
  • 4:55 - 5:02
    Senão, se o número é menor que 2,
    posso definir a cor de preenchimento
  • 5:02 - 5:05
    para ser amarelo... 255...
  • 5:07 - 5:13
    E caso contrário, definirei o
    preenchimento para ser vermelho.
  • 5:13 - 5:16
    Ótimo. Funciona exatamente
    como pretendido.
  • 5:16 - 5:20
    Se um número for menor que 1,
    então novamente, está neste intervalo.
  • 5:20 - 5:24
    Caso contrário, ser for mair que
    ou igual a 1, mas for menor que 2,
  • 5:24 - 5:27
    tal que o ponha neste intervalo,
    iremos definir a cor para amarelo.
  • 5:27 - 5:32
    Senão, ele será maior ou igual a 2,
    então cairá naquele intervalo.
  • 5:32 - 5:36
    E aqui está um caso que não poderíamos
    dizer if number < 2,
  • 5:36 - 5:39
    e if number < 3,
  • 5:39 - 5:43
    porque se number é menor que 1,
    então será definitivamente menor que 2,
  • 5:43 - 5:44
    e também será menor que 3.
  • 5:44 - 5:47
    Então nossa moeda sempre
    irá terminar em vermelho,
  • 5:47 - 5:50
    e é por isso que neste caso,
    é realmente útil termos else-if.
  • 5:50 - 5:53
    [Legendado por: Carlos A. N. C. R.]
    [Revisado por: Fernando dos Reis]
Title:
If/Else Parte 2 (Versão em Vídeo)
Description:

Esta é uma gravação em vídeo de uma conversa, carregada para tornar mais fácil a criação de legendas. É melhor assistir nossos vídeos aqui:
http://www.khanacademy.org/cs/programming/.

more » « less
Video Language:
English
Duration:
05:53

Portuguese, Brazilian subtitles

Revisions