0:00:01.061,0:00:03.269 Aqui está onde paramos com[br]nosso jogo da moeda. 0:00:03.275,0:00:06.338 Começamos gerando um número[br]aleatório entre 0 e 1, 0:00:06.338,0:00:09.072 e então arredondando o número[br]para o inteiro mais próximo. 0:00:09.072,0:00:12.152 Então isto nos deu um número[br]que era ou 0 ou 1. 0:00:12.152,0:00:15.587 E então nós ilustramos nossa moeda[br]super-realista com esta elipse 0:00:15.587,0:00:18.798 que era ou roxa ou amarela,[br]dependendo de qual número era. 0:00:18.798,0:00:20.802 E aqui está o código onde fizemos isso. 0:00:20.802,0:00:24.519 Dissemos que se o inteiro é igual a 0[br]defina a cor de preenchimento para roxa, 0:00:24.519,0:00:26.332 caso contrário, defina como amarelo. 0:00:26.332,0:00:27.978 E então desenhamos uma moeda aqui. 0:00:27.978,0:00:30.939 Mas agora eu decidi que na verdade,[br]minha moeda tem três lados. 0:00:30.939,0:00:32.563 Sim, uma moeda de três lados. 0:00:32.563,0:00:34.444 Então vamos adicionar um terceiro lado. 0:00:34.444,0:00:37.349 Começarei fazendo um número de 0 a 2, 0:00:37.349,0:00:41.830 depois que arrendondarmos isso,[br]ele me dará um inteiro que será 0, 1 ou 2. 0:00:41.830,0:00:43.924 Mas se olharmos para[br]o código de desenho, 0:00:43.924,0:00:46.047 estamos contando apenas[br]para dois casos aqui. 0:00:46.047,0:00:49.354 Então se o inteiro é 0, torne-a roxa,[br]caso contrário, torne-a amarela. 0:00:49.354,0:00:52.005 Mas agora, 'caso contrário' pode[br]significar ou 1 ou 2. 0:00:52.005,0:00:54.852 Mas espere, e se eu fizesse a[br]mesma coisa que fizemos antes, 0:00:54.852,0:00:57.381 mas dentro deste bloco else.[br]Então escreverei apenas: 0:00:57.381,0:01:03.666 if integer é igual a 1 então defina a[br]cor de preenchimento para amarela, 0:01:03.666,0:01:05.631 como era antes. 0:01:05.631,0:01:10.897 else, definiremos a cor para[br]vermelha. Vermelho está muito bom. 0:01:10.922,0:01:15.453 O que isso significa é, se integer é[br]igual a 0, defina a cor para roxo. 0:01:15.504,0:01:18.829 caso contrário, se é igual a 1,[br]nós a tornaremos amarela. 0:01:18.966,0:01:24.333 senão, ou seja, se não for 0, não for 1, [br]deve ser 2, tornaremos a cor vermelha. 0:01:24.333,0:01:27.374 Pressiono reiniciar um monte de vezes. [br]Funciona! 0:01:28.554,0:01:31.232 Logo, se quisermos adicionar[br]mais lados à minha moeda, 0:01:31.232,0:01:35.681 eu posso subir aqui, e fazer de 0 até 3,[br]e depois aprofundar o bloco else 0:01:35.681,0:01:37.866 e adicionar mais if-else's[br]e assim por diante, 0:01:37.866,0:01:40.139 até eu ter zilhões de blocos aninhados. 0:01:40.139,0:01:44.672 E apenas depois eu vou perceber que este[br]código está nojento! Quero dizer, grosso! 0:01:44.672,0:01:48.649 O código deve ser fácil de ler e bonito,[br]não tão feio quanto possível. 0:01:48.649,0:01:50.388 Por isso, isto é o que vamos fazer: 0:01:50.388,0:01:53.047 Sempre que você tiver apenas[br]uma declaração if única 0:01:53.047,0:01:55.461 ou uma declaração if-else[br]dentro de um bloco else 0:01:55.461,0:01:58.682 tal que signifique que não faremos[br]nada mais fora destes blocos, 0:01:58.682,0:02:04.969 não estamos definindo a cor do traço,[br]não temos mais declarações if, nada. 0:02:04.969,0:02:06.953 Tudo que temos é essa[br]única declaração if, 0:02:06.953,0:02:08.724 e talvez ela venha com[br]um bloco else. 0:02:08.724,0:02:12.824 Depois, podemos combinar esta condição[br]com a linha anterior e dizer: 0:02:12.824,0:02:17.558 else if integer é igual a 1, defina a[br]cor de preenchimento para amarelo. 0:02:17.558,0:02:20.436 e este último bloco else não está[br]aninhado em lugar algum, 0:02:20.436,0:02:22.385 apenas vem bem no final por si só. 0:02:22.385,0:02:23.151 Ótimo! 0:02:23.151,0:02:27.557 Agora isso significa que, se integer[br]é igual a 0, defina a cor para roxo, 0:02:27.557,0:02:30.059 caso contrário se integer é igual a 1,[br]defina a cor para amarelo, 0:02:30.099,0:02:34.130 caso contrário, ou seja, se ambas forem[br]falsas, então defina-a para vermelho. 0:02:34.130,0:02:37.611 Pressiono reiniciar um monte de vezes[br]e você pode ver que ainda funciona 0:02:37.611,0:02:41.769 Ótimo! E a coisa legal disso é que podemos[br]ter quantos else-if 's quisermos, 0:02:41.769,0:02:44.963 o que torna muito fácil para mim[br]adicionar mais lados à minha moeda. 0:02:44.963,0:02:48.602 Então vamos fazer isso agora.[br]Farei um número entre 0 e 3, 0:02:48.602,0:02:56.169 e então apenas adicionarei um bloco else[br]a mais: else if integer é igual a 2. 0:02:56.219,0:02:58.259 Definiremos a cor de preenchimento para... 0:02:58.259,0:03:00.685 bem, estava vermelha antes[br]então vamos mantê-la. 0:03:00.685,0:03:04.262 Depois, este último bloco else será[br]para quando um integer for igual a 3, 0:03:04.262,0:03:08.071 ele o tornará azul. Ótimo! 0:03:08.571,0:03:09.551 Tudo certo. Então... 0:03:09.551,0:03:13.084 para que façamos isso, você sempre terá[br]que começar com uma declaração if , 0:03:13.084,0:03:16.440 e depois você pode ter[br]quantos else-if 's quiser, 0:03:16.440,0:03:18.284 e então este último cara é opcional. 0:03:18.284,0:03:21.889 Na verdade, podemos fazer sem ele,[br]e é possível que todos estes sejam falso, 0:03:21.889,0:03:23.782 então nenhum destes blocos é executado. 0:03:23.782,0:03:25.733 Porém, contanto que tenhamos aquilo lá, 0:03:25.733,0:03:29.969 então exatamente um destes[br]blocos será executado. 0:03:29.969,0:03:36.285 Legal? Agora este é o caso onde você diz:[br]if else-if else-if else, 0:03:36.290,0:03:41.522 ou apenas usa as boas e velhas declarações[br]if como tínhamos no início, 0:03:41.522,0:03:45.760 então se o integer é igual a 3. 0:03:45.760,0:03:51.287 E isso é porque nunca é possível para [br]integer ser igual a 0, e também 1, 2 ou 3. 0:03:51.287,0:03:53.929 Ótimo. Então essas condições [br]são mutuamente exclusivas. 0:03:53.929,0:03:56.915 Sempre, apenas um destes blocos[br]irá executar de qualquer forma. 0:03:56.915,0:03:58.431 Mas esse não é sempre o caso. 0:03:58.431,0:04:01.639 E se tentarmos criar um jogo como[br]este sem arrendondar um inteiro? 0:04:01.639,0:04:04.062 Vou me livrar desta parte[br]onde nós o arredondamos, 0:04:04.062,0:04:06.919 e a outra parte onde[br]nós desenhamos a tela. 0:04:06.919,0:04:09.296 E vamos criar algumas regras[br]novas para o meu jogo. 0:04:09.296,0:04:12.934 Então ainda estou gerando um[br]número entre 0 e 3, 0:04:12.934,0:04:16.633 ponha mais alguma marca[br]de escala na linha de número. 0:04:16.633,0:04:22.525 Vamos dizer que se o número cair[br]entre 0 e 1 nós o tornaremos roxo. 0:04:22.525,0:04:26.680 Oh, isso não parece mesmo com[br]um 'p'. Você entendeu. 0:04:26.680,0:04:31.057 E se cair entre 1 e 2,[br]podemos fazê-lo amarelo. 0:04:31.057,0:04:34.501 E se cair entre 2 e 3, nós[br]o tornaremos vermelho. 0:04:34.501,0:04:39.337 Ótimo. Vamos ver como podemos[br]fazer isso com if e else-if 's 0:04:39.337,0:04:43.469 Eu posso começar dizendo se[br]um número é menor que 1, 0:04:43.469,0:04:48.224 então se é menor que 1,[br]e eu sei que é entre 0 e 3, 0:04:48.224,0:04:50.860 então deve estar neste intervalo, 0:04:50.860,0:04:55.204 depois, eu definirei a cor de[br]preenchimento para ser roxa. 0:04:55.204,0:05:01.803 Senão, se o número é menor que 2, [br]posso definir a cor de preenchimento 0:05:01.803,0:05:05.312 para ser amarelo... 255... 0:05:06.652,0:05:12.582 E caso contrário, definirei o[br]preenchimento para ser vermelho. 0:05:12.582,0:05:16.181 Ótimo. Funciona exatamente[br]como pretendido. 0:05:16.181,0:05:19.810 Se um número for menor que 1,[br]então novamente, está neste intervalo. 0:05:19.810,0:05:23.544 Caso contrário, ser for mair que [br]ou igual a 1, mas for menor que 2, 0:05:23.544,0:05:26.763 tal que o ponha neste intervalo,[br]iremos definir a cor para amarelo. 0:05:26.763,0:05:31.622 Senão, ele será maior ou igual a 2,[br]então cairá naquele intervalo. 0:05:31.622,0:05:36.173 E aqui está um caso que não poderíamos[br]dizer if number < 2, 0:05:36.173,0:05:39.141 e if number < 3, 0:05:39.141,0:05:42.755 porque se number é menor que 1,[br]então será definitivamente menor que 2, 0:05:42.755,0:05:44.374 e também será menor que 3. 0:05:44.374,0:05:46.800 Então nossa moeda sempre[br]irá terminar em vermelho, 0:05:46.800,0:05:49.967 e é por isso que neste caso,[br]é realmente útil termos else-if. 0:05:49.967,0:05:53.000 [Legendado por: Carlos A. N. C. R.][br][Revisado por: Fernando dos Reis]