Looping enquanto uma condição é verdadeira em C ++
declarações de ramo permitem que você direcionar o fluxo de execução de um programa C ++ de baixo um caminho ou outro. Esta é uma grande melhoria, mas ainda não o suficiente para escrever programas na máxima força.
Considere o problema de atualizar a tela do computador. O PC típico deve atualizar mais de mil pixels para cada linha, uma vez que pinta uma imagem da esquerda para a direita. Ele repete esse processo para cada um dos mil ou mais linhas na tela. Ele faz isso através da execução do mesmo pequeno número de instruções, milhões de vezes - uma vez para cada pixel.
A forma mais simples de looping afirmação é do enquanto loop. Aqui está o que o enquanto circuito se parece com:
while (condição) {// ... executadas repetidamente enquanto condição for verdadeira}
o condição é testado. Esta condição pode ser Se var> 10 ou se var1 var2 == ou qualquer outra expressão que você pode pensar, desde que ele retorna um valor de verdade ou falso. Se a condição for verdade, as declarações dentro das chaves são executados. Ao encontrar a chave fechada, retorna C ++ controle para o início, eo processo recomeça.
Se a condição for falso, controle passa para a primeira declaração após a cinta fechada. O efeito é que o código C ++ dentro das chaves é executada repetidamente, desde que a condição é verdade.
Se a condição eram verdade Pela primeira vez, o que iria fazer com que seja falso no futuro? Considere o seguinte programa de exemplo:
// WhileDemo - Entrada de uma contagem de loop. Loop while // saída aString número arg de vezes. # Incluem#incluir #incluir usando namespace std-int main (int nNumberofArgs, char * pszArgs []) {// entrada do circuito countint nLoopCount-cout lt; lt; "Enter contagem de loop:" CIN II-III >> nLoopCount - // agora loop que muitos timeswhile (nLoopCount> 0) {nLoopCount = nLoopCount - 1-cout lt; lt; "Somente " lt; lt; nLoopCountlt; lt; "Loops para ir" lt; lt; endl -} // espera até que o usuário está pronto antes de terminar o programa // para permitir que o usuário veja o resultscout programa lt; lt; "Pressione Enter para continuar ..." lt; lt; endl-cin.ignore (10, ' n') - cin.get () - retornar 0-}
WhileDemo começa por recuperar uma contagem de loop do usuário, que ele armazena na variável nLoopCount. O programa então executa um enquanto loop. o enquanto primeiros testes nLoopCount. E se nLoopCount é maior que 0, o programa entra no corpo do laço (o corpo é o código entre as chaves), onde diminui nLoopCount por 1 e apresenta o resultado para a exibição.
O programa volta então para o início do circuito para testar se nLoopCount ainda é positivo.
Quando executado, o programa WhileDemo produz os resultados apresentados neste próximo trecho. Aqui, uma contagem de loop de 5 é inserido. O resultado é que o programa repetido cinco vezes, cada vez que a saída de uma contagem decrescente:
Digite contagem de loop: 5Apenas 4 voltas para goOnly 3 voltas para goOnly 2 loops para goOnly 1 loops para goOnly 0 loops para goPress Enter para continuar ...
Se o usuário insere uma contagem de ciclo negativo, o programa salta o laço inteiramente. Isso porque a condição especificada é nunca verdade, assim controle nunca entra no loop. Além disso, se o utilizador introduzir um número muito grande, o programa de ciclos durante um longo tempo antes de completar.
Uma versão separada, usada com menos frequência do enquanto circuito conhecido como o Faz # 133- enquanto parece ser idêntica excepto a condição não é testado até que a parte inferior do circuito:
fazer {// ... o interior do loop} enquanto (condição) -
Uma vez que a condição não é testado até ao final, o corpo do Faz # 133- enquanto é sempre executado pelo menos uma vez.
A condição é verificada apenas no início do enquanto circuito ou no final do fazer # 133- enquanto loop. Mesmo se a condição deixa de ser verdade em algum momento durante a execução do ciclo, o controlo não sair do ciclo até que a condição é reanalisada.