DOUG LLOYD: Tudo bem, então vamos falar sobre loops. Então laços são uma espécie de arrefecer porque eles permitem que seu programa para executar linhas de código mais e mais e mais. Repetidamente, sem ter que copiar e cole ou não repeti-los. Existem três grandes tipos de loops que você verá. Você provavelmente vai ter a oportunidade de usar cada um à medida que avança através CS50. Alguns desses laços são bastante familiar para você a partir do zero, Então, novamente, como fizemos com condicionais, nós vamos colocá-los lado a lado se há uma analogia que podemos tirar. Em primeiro lugar é para sempre a partir do zero, o que compara com while (true). Isto é o que chamamos de um loop infinito. As linhas de código entre o encaracolado suspensórios, bem como as peças do puzzle que se encaixam no interior do C do bloco para sempre, irá executar repetidamente a partir de cima para baixo, mais e mais e mais, para sempre. Afinal, se você se lembra nossa discussão de expressões booleanas, verdade sempre é verdade. Então, se estamos fazendo algo tão longo como verdadeiro é true-- parece um pouco silly-- verdade sempre é verdade, por isso sempre vou correr. Ele vai correr para sempre e sempre e sempre, até que encontrar uma maneira de sair dela com uma instrução break, que mais uma vez, vimos há pouco tempo nós estavam falando switch. Ou de outra forma apenas matar nossa programa, que, aliás, se você alguma vez encontrar-se em um situação com um loop infinito e você não sabe como parar o seu programa seja executado. Basta clicar em controle e C e que vai matar o seu programa para você. Mas este, de novo, é chamado um loop infinito. É um ciclo que vai correr para sempre. Agora, enquanto laços não são sempre infinito, também porque podemos substituir o booleano expressão com algo um pouco mais útil do que apenas verdadeiro. Então, aqui está outro exemplo. Enquanto alguns booleana e expressão e chaves, em seguida, encaracolado. Isso é muito bonito análogo repetir até que, a partir do zero. Embora numa segunda, eu vou explicar a diferença. Assim, em C, se a expressão booleana dentro do loop while avalia como true, as linhas de código entre as chaves será executado repetidamente, uma e outra e mais até expressão booleana avaliada como falsa. Assim, por exemplo, você pode ter algum tipo de contador. Então diga que no início do esse loop dizer int x é igual a zero. Enquanto x é inferior a 100, faça um par coisas dentro daquela chaves, então, no final do seu ciclo, você diz x plus plus, você está incrementando x. Eventualmente x terá a 100 e você parar porque a condição x é inferior a 100 deixará de ser verdade como logo que x é igual a 100. 100 não é inferior a 100. Agora um pouco confusa, o comportamento do bloco zero é invertida. Então, ter muito cuidado se este for sua primeira incursão usando loops. Basicamente, a repetição até que o bloco no Scratch vou repetir algo mais e mais e mais, até que a expressão, a booleana expressão no hexágono é verdadeiro. Então ele vai continuar fazendo lo até que ele é verdadeiro. Enquanto isso, o loop while será continuar a fazê-lo até que ele é falso. Então eles são bastante semelhantes, mas há que pouca distinção apenas ter cuidado especialmente de como você faz sua primeira incursão de transição riscar em c. O próximo tipo de laço é realmente muito similar. Chama-se a fazer enquanto loop. Este ciclo irá executar todas as linhas de código entre as chaves uma vez, e, em seguida, ele irá verificar a expressão booleana. Se a expressão booleana avalia a verdade, ele vai voltar e repetir que processo mais e mais e mais até que o booleano expressão é avaliada como falsa. Portanto, este loop, ao contrário de um loop while, é garantido para executar pelo menos uma vez. Isso pode ser bastante útil. Por último, temos um laço for. Loops são uma espécie de sintaticamente pouco atraente e há muita coisa acontecendo aqui, para ter comigo como nós tentar quebrar essas peças separadas. Geralmente, o caso de uso de um loop for é você quero repetir algo um número específico de vezes. Neste exemplo aqui, Eu tenho o bloco de repetição a partir do zero, o que é análogo ao loop for em C, repetindo 10 vezes algo. E o loop for em à esquerda lá, o que é um circuito que quatro faria a mesma coisa. Este seria 10 vezes. Contando a partir de zero, nós incrementar cada passagem do loop. E nós continuar fazendo isso até que eu seja inferior a 10. Então o que acontece? Há um monte de código lá. Vamos dividi-la o que está acontecendo passo a passo como nós cavar através de um loop. A primeira coisa que aconteceu é a variável do contador é o centro. Tudo à esquerda daquele primeiro ponto e vírgula dentro dos parênteses é executado. Neste caso, estamos dizendo int i é igual a 0. Declarando uma nova variável chamada i, que as variáveis ​​é um tipo inteiro e nós estamos dizendo o valor dentro essa variável vai ser zero. A segunda coisa que fazemos é Nós, então, avaliar imediatamente a expressão booleana. Expressão booleana está no meio dos dois pontos e vírgulas. I é inferior a 10. Isso é verdade aqui, certo? Nós apenas disse que eu é igual a zero, e assim por 0 é inferior a 10, e de modo que a condição é verdade e nós agora prosseguir para executar o corpo do laço. Se era falsa. Se, por exemplo, eu disse ao invés de i é igual a 0 lá eu disse i é igual a 15, int i é igual a 15. Bem 15 é igual ou superior a 10, por isso, nunca entrar no corpo do loop porque a expressão booleana não seria avaliada como falsa. Depois que passamos de cima para baixo, nos deparamos com que chaves de fechamento, uma terceira coisa acontece. A variável contador é incrementado, ou melhor, as linhas de código de uma instrução após o segundo ponto e vírgula dentro do para loops parênteses é executado. Então, vamos começar por dizendo int i é igual a 0. Em seguida, verificar se há ou não a expressão booleana é verdadeira. 0 é menor que, 10 por isso é verdadeiro. Então, nós estamos indo para prosseguir para dentro do corpo do ciclo. As coisas vão acontecer dentro do loop, e quando nos deparamos com que de fechamento cinta, a próxima coisa que fazer é dizer que eu plus, plus. Eu era zero agora eu é um deles. Então, mais uma vez verificar o valor de A expressão booleana no meio. Uma delas é inferior a 10. Então, vamos passar por isso processar novamente e novamente. Nós vamos chegar ao fechamento chaveta novamente. Vamos incrementar i de De 1 a 2 e de 2 a 3. E assim por diante e assim por diante e assim por diante, até que Eventualmente eu de valor se torna 10. 10 é inferior a 10? Não. Contando a partir de 0, temos ido através de 10 iterações do loop. Temos repetido 10 vezes, apenas como fizemos no bloco de rascunho. E por isso é basicamente o processo para um loop de quatro. Agora tirar a código real e colocando- em apenas algumas declarações gerais básicos. Veja o que acontece. Todas as declarações em começar são executados primeiro. Você pode ter mais de um. Em seguida, a expressão booleana é verificada. Se a expressão for avaliada como verdadeira, executar o corpo do loop de uma só vez. Se a expressão for avaliada como falso, estamos a fazer. Nós não executar o corpo do circuito em tudo. Depois temos o executado corpo do circuito uma vez, que, em seguida, fazer o que está em a parte incremento lá. Que é geralmente vai ser algo como i plus, além de ou algo assim, que modifica uma variável de contador. Então, depois que incrementar, nós verificar a expressão novamente e repita os passos mais e mais e mais até que a expressão é não é mais verdade. Então, quais são os casos de uso de um loop? Use você usar um loop while quando você quer um loop para repetir um número desconhecido de vezes, mas ele possivelmente pode não ser executado todos. Um exemplo muito comum de um ao loop sendo usado é executar o fluxo de controle para um jogo. Você pode não saber quanto tempo o usuário vai estar jogando, mas você deseja manter fazendo a mesma coisa. Atualizando os cargos de vários sprites no quadro. Você quer manter as coisas movendo-se em todos os momentos, mas você não sabe quando o usuário vai parar de jogar ou quando eles estão indo a correr para fora de vidas. Assim, um loop while é realmente bom para algo assim. Isso é um bom caso de uso. Para um loop Do While, é bastante similar. Você quer um loop para repetir um desconhecido número de vezes, mas pelo menos uma vez. Você pode usar isso para um jogo também, mas um caso de uso muito comum é avisar o usuário para entrada. Geralmente, você pode dizer algo como, me dar um número inteiro positivo, e você pode colocar isso dentro de um loop Do While. Por isso vai sempre pedir-lhes a menos uma vez por um número inteiro positivo. Se eles dão-lhe um número inteiro positivo, você pode sair do loop. Você pode ser feito. A expressão booleana em a fazer enquanto pode ser falsa. E você não vai pedir-lhes novamente. Se eles dão-lhe um número negativo, onde eles tipo alguma palavra ou algo que é não é realmente útil para você, você pode usar o Do While loop para voltar e fazer isso de novo e de novo e de novo. Você definitivamente quero perguntar los a dar-lhe um número uma vez, mas você não sabe quantas vezes depois que eles podem ser pragas. E assim a fazer enquanto ele é um grande uso caso para avisar o usuário para entrada. E uma para loops usar caso é tipicamente quando que você deseja repetir um loop um número discreto de vezes, embora talvez não saber o número de vezes o momento em que o programa é compilado. Assim, por exemplo, talvez você tenha um programa onde você solicitar ao usuário um número. E eles entram 100. E então o seu ciclo for vontade Nesse caso correr 100 vezes. Ou talvez eles entram 1000 em seu programa e depois executar o loop de 1.000 vezes. É um número específico de vezes. Eles não necessariamente saber o que esse número é o programa de momento é compilado. Não é como um loop while onde poderia ser infinita. É sim um número que você simplesmente não sei. Agora mesmo que eu tenho delineados todos estes casos de utilização, você deve saber que em muito muito todas as circunstâncias, você pode trocar tudo três destes ciclos. Você pode usar um loop onde você de outra forma, usar um loop while. Você pode usar um loop onde quer você pode usar um loop Do While e assim por diante. Ele pode ser um pouco complicado, por vezes, de modo geral, é uma boa prática a aderir a um caso de uso típico. Use um loop Do While se queria algo uma vez, pelo menos. Use um loop for, se você quer fazer algo que um número específico de vezes. Afinal, é por isso que existem três diferentes tipos de loops. Assim, eles podem ser usados no contexto certo. Mas você pode trocar -los se quiser. Se você se sentir confortável com loops enquanto e você sempre quer usar enquanto loops. É algo que você pode fazer, embora pode ser um pouco sintaticamente complicado, onde um loop Seria muito mais simples. Meu nome é Doug Lloyd e este é CS50.