‫Olá e bem-vindo a esta palestra.
‫Vamos aprender como podemos executar um pedaço de código variável números de vezes para que possamos
‫imprimir todos os objetos que se sobrepõem dentro desta área, este componente de gatilho.
‫Então você pode ver aqui que quando estamos os dois, eu estou dentro e há uma gárgula também.
‫Ele está imprimindo tanto o nome das gárgulas quanto o nome das plantas do jogador.
‫Vamos mergulhar e ver como isso é feito.
‫Agora, o problema com nosso código aqui é que nosso array de atores pode ter muito mais do que apenas um
‫ator nele, e se quisermos exibir todos os atores sobrepostos, queremos fazer algo com todos
‫esses atores.
‫Precisamos ser capazes de executar através do código.
‫Seria altamente ineficiente escrever uma instrução if para o caso em que temos dois ou
‫três ou quatro ou cinco, etc. E certamente nunca pegaria todos os casos porque temos uma quantidade limitada
‫de linhas em nosso arquivo.
‫Então, da maneira como lidamos com isso, queremos repetir um pedaço de código várias vezes, mas várias vezes que
‫não sabemos.
‫Quando estamos compilando o código, precisamos substituir nossa instrução if, onde a instrução if essencialmente diz,
‫devo executar este código ou não por algo que diz, devo executar este código ou devo executá-lo
‫muitas vezes, duas vezes, três vezes, quatro vezes, etc.?
‫A maneira como fazemos isso é com algo chamado de declaração selvagem.
‫Agora é construído muito parecido com uma instrução if.
‫Então, enquanto você coloca algum tipo de valor booleano dentro dos parênteses, e então temos algumas chaves
‫e dentro das chaves, um bloco de código que continuará sendo executado
‫repetidamente até que a condição em nossa instrução wild se torne falsa .
‫É por isso que é chamado de enquanto.
‫Então, enquanto isso é verdade, execute este código.
‫Portanto, é um pouco como uma instrução if, pois às vezes pode não executar o código, mas
‫ao contrário de sua instrução que só pode executar um pedaço de código uma vez, a instrução
‫wild pode basicamente continuar executando-o para sempre se esse booleano nunca se tornar falso.
‫Então, por que isso é útil?
‫Bem, poderíamos criar um int 32 e chamá-lo de índice e iniciá-lo em zero.
‫E então toda vez que passamos pelo corpo desse loop selvagem, aumentamos o valor armazenado nesse índice.
‫Então podemos dizer que índice é igual a índice mais um.
‫Agora, em C++, há um atalho para fazer isso em vez de ter que fazer index mais
‫um assim, você faz mais mais índice, e isso apenas adiciona um ao que está armazenado na variável de índice.
‫OK.
‫Então começamos do zero.
‫Nós cada vez que damos a volta, aumentamos o índice.
‫E o que podemos fazer é fazer com que apenas passemos por esse loop selvagem enquanto nosso índice estiver dentro dos
‫limites de nossa matriz.
‫Então podemos dizer que o índice deve ser menor que os atores dot num.
‫Então esse é o tamanho da matriz.
‫Lembre-se que quando temos cinco itens no array, o último item do array é o índice quatro.
‫E assim podemos ver que isso será verdade quando o índice for válido, quando o índice quatro for menor que cinco.
‫Mas assim que esse índice passar do final da matriz, quando chegar ao índice cinco, o
‫número do ator não será mais cinco não será menor que cinco.
‫Portanto, o loop while parará de ser executado e continuará com o restante da função.
‫Então, o que isso significa é que agora podemos pegar o código que tínhamos acima e reescrevê-lo, pegá-lo, copiá-lo, cortá-lo
‫e colocá-lo aqui em um tempo.
‫Ciclo.
‫Mas antes de aumentarmos o índice, o mais importante, porque o que vamos fazer é substituir
‫esse zero onde estávamos obtendo o ator zero, podemos substituí-lo pelo índice do ator.
‫Então vamos seguir isso.
‫Como isso funcionaria.
‫Legal.
‫Remova nossa instrução if porque isso é um pouco confuso.
‫Então começamos o valor na variável index vai ser zero.
‫Agora imagine que temos que agir é manter as coisas simples é zero menos que dois.
‫Sim Sim é isso.
‫Então entramos e obtemos o ator zero, obtemos seu nome e o desconectamos e então aumentamos o valor no índice
‫em um.
‫Então, vai de zero a um.
‫Agora voltamos para avaliar a condição do laço while e dizemos que é um a menos que dois?
‫É sim.
‫Podemos então entrar e pegar o ator um e então vamos pegar seu nome e imprimir seu nome.
‫Em seguida, aumentamos o índice novamente para o índice dois e fazemos a pergunta novamente no loop while dizendo que dois
‫é menor que dois?
‫Então, a resposta é não.
‫Então, pulamos o corpo do loop while e continuamos e executamos o resto do código.
‫Então é basicamente isso que queremos alcançar.
‫Queremos imprimir o nome de cada ator na matriz, e é isso que esse código fará.
‫Vamos em frente e compilá-lo e verificar se estou certo.
‫Se formos em frente e apertar o play e entrar na caixa, você pode ver que estávamos sobrepondo apenas o jogador
‫BP.
‫E se formos buscar nossa gárgula?
‫Se colocarmos apenas no salto, você pode ver que ficamos sobrepondo a gárgula.
‫Mas e se eu entrar também?
‫Agora você pode ver que está imprimindo tanto o jogador quanto a gárgula, todos no mesmo quadro.
‫Então nosso loop selvagem está funcionando.
‫Ele está executando um pedaço de código várias vezes quando há vários atores na matriz.
‫Agora, porque esse padrão é tão comum que temos algum tipo de índice e o aumentamos toda vez que
‫passamos pelo loop.
‫Na verdade, há uma abreviação para isso em C++ e, se você digitar no código do Visual Studio, há um trecho
‫para um loop de quatro aqui que você pode expandir e ver que essa é uma estrutura geral.
‫Tem algo chamado tamanho T aqui.
‫Podemos substituir isso por INT 32 para nossos propósitos.
‫E essencialmente o que isso está dizendo é que existem três instruções dentro dos parênteses do loop for.
‫O primeiro é equivalente a onde configuramos nossa variável de índice antes de nosso loop while.
‫A segunda é a condição que é equivalente ao que colocamos dentro do nosso laço while.
‫E você pode ver que poderíamos substituir a contagem por atores ponto num.
‫E então o último bit é basicamente o plus plus se você colocar antes ou depois, o índice
‫não é muito importante, mas você pode ver que isso está aumentando o valor no índice.
‫Então é equivalente à linha que colocamos no final do nosso loop.
‫Então, isso apenas reúne tudo em uma linha o que estávamos tendo que espalhar em vários usando nosso
‫loop selvagem.
‫Então aqui está um desafio simples para você.
‫Converta seu loop waah em um loop for.
‫Você vai copiar e o corpo do código mudará o índice desse índice de nome para I.
‫Normalmente usamos a abreviação em loops for de I apenas uma abreviação para index realmente e compile e
‫teste o vídeo de reprodução.
‫OK.
‫Bem vindo de volta.
‫Portanto, isso deve ser bastante simples.
‫Não queremos o índice mais mais aqui.
‫Então vamos cortar o resto.
‫Uma mudança sobre onde estamos indexando o array de atores com a variável de índice.
‫Vamos mudar isso para IE a variável.
‫Está disponível apenas dentro deste loop for.
‫Essa é outra vantagem pela sintaxe do loop completo é que a variável IE está disponível apenas, disponível apenas
‫dentro do loop completo, enquanto que quando a declaramos aqui no loop while, ela
‫está disponível fora, o que polui os índices que podemos use mais tarde para que possamos excluir esse loop selvagem.
‫E você pode ver que o loop completo é muito mais condensado e você se acostumará com a sintaxe um
‫pouco estranha que ele possui.
‫Vamos em frente e compilar e apenas verificar se ele realmente faz o mesmo trabalho.
‫Se eu for e pegar minha gárgula e for até os atores sobrepostos, você pode ver que de fato está imprimindo
‫nossos dois atores quando nós dois estamos sobrepostos na alcova.
‫Coisas boas.
‫Então, nesta palestra vimos uma nova ideia de programação, a ideia de loops, e encontramos particularmente
‫o loop Y e o loop for.
‫Vejo você na próxima palestra.