1 00:00:01,061 --> 00:00:03,269 Aqui está onde paramos com nosso jogo da moeda. 2 00:00:03,275 --> 00:00:06,338 Começamos gerando um número aleatório entre 0 e 1, 3 00:00:06,338 --> 00:00:09,072 e então arredondando o número para o inteiro mais próximo. 4 00:00:09,072 --> 00:00:12,152 Então isto nos deu um número que era ou 0 ou 1. 5 00:00:12,152 --> 00:00:15,587 E então nós ilustramos nossa moeda super-realista com esta elipse 6 00:00:15,587 --> 00:00:18,798 que era ou roxa ou amarela, dependendo de qual número era. 7 00:00:18,798 --> 00:00:20,802 E aqui está o código onde fizemos isso. 8 00:00:20,802 --> 00:00:24,519 Dissemos que se o inteiro é igual a 0 defina a cor de preenchimento para roxa, 9 00:00:24,519 --> 00:00:26,332 caso contrário, defina como amarelo. 10 00:00:26,332 --> 00:00:27,978 E então desenhamos uma moeda aqui. 11 00:00:27,978 --> 00:00:30,939 Mas agora eu decidi que na verdade, minha moeda tem três lados. 12 00:00:30,939 --> 00:00:32,563 Sim, uma moeda de três lados. 13 00:00:32,563 --> 00:00:34,444 Então vamos adicionar um terceiro lado. 14 00:00:34,444 --> 00:00:37,349 Começarei fazendo um número de 0 a 2, 15 00:00:37,349 --> 00:00:41,830 depois que arrendondarmos isso, ele me dará um inteiro que será 0, 1 ou 2. 16 00:00:41,830 --> 00:00:43,924 Mas se olharmos para o código de desenho, 17 00:00:43,924 --> 00:00:46,047 estamos contando apenas para dois casos aqui. 18 00:00:46,047 --> 00:00:49,354 Então se o inteiro é 0, torne-a roxa, caso contrário, torne-a amarela. 19 00:00:49,354 --> 00:00:52,005 Mas agora, 'caso contrário' pode significar ou 1 ou 2. 20 00:00:52,005 --> 00:00:54,852 Mas espere, e se eu fizesse a mesma coisa que fizemos antes, 21 00:00:54,852 --> 00:00:57,381 mas dentro deste bloco else. Então escreverei apenas: 22 00:00:57,381 --> 00:01:03,666 if integer é igual a 1 então defina a cor de preenchimento para amarela, 23 00:01:03,666 --> 00:01:05,631 como era antes. 24 00:01:05,631 --> 00:01:10,897 else, definiremos a cor para vermelha. Vermelho está muito bom. 25 00:01:10,922 --> 00:01:15,453 O que isso significa é, se integer é igual a 0, defina a cor para roxo. 26 00:01:15,504 --> 00:01:18,829 caso contrário, se é igual a 1, nós a tornaremos amarela. 27 00:01:18,966 --> 00:01:24,333 senão, ou seja, se não for 0, não for 1, deve ser 2, tornaremos a cor vermelha. 28 00:01:24,333 --> 00:01:27,374 Pressiono reiniciar um monte de vezes. Funciona! 29 00:01:28,554 --> 00:01:31,232 Logo, se quisermos adicionar mais lados à minha moeda, 30 00:01:31,232 --> 00:01:35,681 eu posso subir aqui, e fazer de 0 até 3, e depois aprofundar o bloco else 31 00:01:35,681 --> 00:01:37,866 e adicionar mais if-else's e assim por diante, 32 00:01:37,866 --> 00:01:40,139 até eu ter zilhões de blocos aninhados. 33 00:01:40,139 --> 00:01:44,672 E apenas depois eu vou perceber que este código está nojento! Quero dizer, grosso! 34 00:01:44,672 --> 00:01:48,649 O código deve ser fácil de ler e bonito, não tão feio quanto possível. 35 00:01:48,649 --> 00:01:50,388 Por isso, isto é o que vamos fazer: 36 00:01:50,388 --> 00:01:53,047 Sempre que você tiver apenas uma declaração if única 37 00:01:53,047 --> 00:01:55,461 ou uma declaração if-else dentro de um bloco else 38 00:01:55,461 --> 00:01:58,682 tal que signifique que não faremos nada mais fora destes blocos, 39 00:01:58,682 --> 00:02:04,969 não estamos definindo a cor do traço, não temos mais declarações if, nada. 40 00:02:04,969 --> 00:02:06,953 Tudo que temos é essa única declaração if, 41 00:02:06,953 --> 00:02:08,724 e talvez ela venha com um bloco else. 42 00:02:08,724 --> 00:02:12,824 Depois, podemos combinar esta condição com a linha anterior e dizer: 43 00:02:12,824 --> 00:02:17,558 else if integer é igual a 1, defina a cor de preenchimento para amarelo. 44 00:02:17,558 --> 00:02:20,436 e este último bloco else não está aninhado em lugar algum, 45 00:02:20,436 --> 00:02:22,385 apenas vem bem no final por si só. 46 00:02:22,385 --> 00:02:23,151 Ótimo! 47 00:02:23,151 --> 00:02:27,557 Agora isso significa que, se integer é igual a 0, defina a cor para roxo, 48 00:02:27,557 --> 00:02:30,059 caso contrário se integer é igual a 1, defina a cor para amarelo, 49 00:02:30,099 --> 00:02:34,130 caso contrário, ou seja, se ambas forem falsas, então defina-a para vermelho. 50 00:02:34,130 --> 00:02:37,611 Pressiono reiniciar um monte de vezes e você pode ver que ainda funciona 51 00:02:37,611 --> 00:02:41,769 Ótimo! E a coisa legal disso é que podemos ter quantos else-if 's quisermos, 52 00:02:41,769 --> 00:02:44,963 o que torna muito fácil para mim adicionar mais lados à minha moeda. 53 00:02:44,963 --> 00:02:48,602 Então vamos fazer isso agora. Farei um número entre 0 e 3, 54 00:02:48,602 --> 00:02:56,169 e então apenas adicionarei um bloco else a mais: else if integer é igual a 2. 55 00:02:56,219 --> 00:02:58,259 Definiremos a cor de preenchimento para... 56 00:02:58,259 --> 00:03:00,685 bem, estava vermelha antes então vamos mantê-la. 57 00:03:00,685 --> 00:03:04,262 Depois, este último bloco else será para quando um integer for igual a 3, 58 00:03:04,262 --> 00:03:08,071 ele o tornará azul. Ótimo! 59 00:03:08,571 --> 00:03:09,551 Tudo certo. Então... 60 00:03:09,551 --> 00:03:13,084 para que façamos isso, você sempre terá que começar com uma declaração if , 61 00:03:13,084 --> 00:03:16,440 e depois você pode ter quantos else-if 's quiser, 62 00:03:16,440 --> 00:03:18,284 e então este último cara é opcional. 63 00:03:18,284 --> 00:03:21,889 Na verdade, podemos fazer sem ele, e é possível que todos estes sejam falso, 64 00:03:21,889 --> 00:03:23,782 então nenhum destes blocos é executado. 65 00:03:23,782 --> 00:03:25,733 Porém, contanto que tenhamos aquilo lá, 66 00:03:25,733 --> 00:03:29,969 então exatamente um destes blocos será executado. 67 00:03:29,969 --> 00:03:36,285 Legal? Agora este é o caso onde você diz: if else-if else-if else, 68 00:03:36,290 --> 00:03:41,522 ou apenas usa as boas e velhas declarações if como tínhamos no início, 69 00:03:41,522 --> 00:03:45,760 então se o integer é igual a 3. 70 00:03:45,760 --> 00:03:51,287 E isso é porque nunca é possível para integer ser igual a 0, e também 1, 2 ou 3. 71 00:03:51,287 --> 00:03:53,929 Ótimo. Então essas condições são mutuamente exclusivas. 72 00:03:53,929 --> 00:03:56,915 Sempre, apenas um destes blocos irá executar de qualquer forma. 73 00:03:56,915 --> 00:03:58,431 Mas esse não é sempre o caso. 74 00:03:58,431 --> 00:04:01,639 E se tentarmos criar um jogo como este sem arrendondar um inteiro? 75 00:04:01,639 --> 00:04:04,062 Vou me livrar desta parte onde nós o arredondamos, 76 00:04:04,062 --> 00:04:06,919 e a outra parte onde nós desenhamos a tela. 77 00:04:06,919 --> 00:04:09,296 E vamos criar algumas regras novas para o meu jogo. 78 00:04:09,296 --> 00:04:12,934 Então ainda estou gerando um número entre 0 e 3, 79 00:04:12,934 --> 00:04:16,633 ponha mais alguma marca de escala na linha de número. 80 00:04:16,633 --> 00:04:22,525 Vamos dizer que se o número cair entre 0 e 1 nós o tornaremos roxo. 81 00:04:22,525 --> 00:04:26,680 Oh, isso não parece mesmo com um 'p'. Você entendeu. 82 00:04:26,680 --> 00:04:31,057 E se cair entre 1 e 2, podemos fazê-lo amarelo. 83 00:04:31,057 --> 00:04:34,501 E se cair entre 2 e 3, nós o tornaremos vermelho. 84 00:04:34,501 --> 00:04:39,337 Ótimo. Vamos ver como podemos fazer isso com if e else-if 's 85 00:04:39,337 --> 00:04:43,469 Eu posso começar dizendo se um número é menor que 1, 86 00:04:43,469 --> 00:04:48,224 então se é menor que 1, e eu sei que é entre 0 e 3, 87 00:04:48,224 --> 00:04:50,860 então deve estar neste intervalo, 88 00:04:50,860 --> 00:04:55,204 depois, eu definirei a cor de preenchimento para ser roxa. 89 00:04:55,204 --> 00:05:01,803 Senão, se o número é menor que 2, posso definir a cor de preenchimento 90 00:05:01,803 --> 00:05:05,312 para ser amarelo... 255... 91 00:05:06,652 --> 00:05:12,582 E caso contrário, definirei o preenchimento para ser vermelho. 92 00:05:12,582 --> 00:05:16,181 Ótimo. Funciona exatamente como pretendido. 93 00:05:16,181 --> 00:05:19,810 Se um número for menor que 1, então novamente, está neste intervalo. 94 00:05:19,810 --> 00:05:23,544 Caso contrário, ser for mair que ou igual a 1, mas for menor que 2, 95 00:05:23,544 --> 00:05:26,763 tal que o ponha neste intervalo, iremos definir a cor para amarelo. 96 00:05:26,763 --> 00:05:31,622 Senão, ele será maior ou igual a 2, então cairá naquele intervalo. 97 00:05:31,622 --> 00:05:36,173 E aqui está um caso que não poderíamos dizer if number < 2, 98 00:05:36,173 --> 00:05:39,141 e if number < 3, 99 00:05:39,141 --> 00:05:42,755 porque se number é menor que 1, então será definitivamente menor que 2, 100 00:05:42,755 --> 00:05:44,374 e também será menor que 3. 101 00:05:44,374 --> 00:05:46,800 Então nossa moeda sempre irá terminar em vermelho, 102 00:05:46,800 --> 00:05:49,967 e é por isso que neste caso, é realmente útil termos else-if. 103 00:05:49,967 --> 00:05:53,000 [Legendado por: Carlos A. N. C. R.] [Revisado por: Fernando dos Reis]