enquanto Loops em C ++

Uma característica fundamental na programação C ++ é a capacidade de loop. C ++ oferece três construções de loop em C ++. o enquanto laço tem o seguinte formato:

while (expressão) {// coisas para fazer em um loop} // continuar aqui uma vez expressão é falsa

Quando um programa vem em cima de um enquanto loop, primeiro avalia a expressão dentro dos parêntesis. Se esta expressão está verdade, em seguida, o controlo passa para a primeira linha no interior da {. Quando atinge o controle }, o programa retorna para a expressão e começa de novo. Controle continua a percorrer a codeína as chaves até expressão avalia a falso (Ou até que outra coisa quebra o loop).

Os seguintes Fatorial o programa demonstra enquanto loop:

Factorial (N) = N * (N-1) * (N-2) * 1 * ... //// factorial - calcular factorial utilizando o tempo // construct.//#include #incluir #incluir usando namespace std-int main (int nNumberofArgs, char * pszArgs []) {// inserir o número para calcular o fatorial ofint nTarget-cout lt; lt; "Este programa calcula factorial n". Lt; lt; "Insira um número para tomar fatorial de:" CIN II-III >> nTarget - // começar com um acumulador que é inicializado para 1int nAccumulator = 1-int nValue = 1-while (nValue lt; = nTarget) {cout lt; lt; nAccumulator lt; lt; "*" Lt; lt; nValue lt; lt; "Iguais" -nAccumulator = nAccumulator * nValue-cout lt; lt; nAccumulator lt; lt; endl-nValue ++ -} // exibir o resultcout lt; lt; nTarget lt; lt; "Factorial é" lt; lt; nAccumulator 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-}

O programa começa por avisar o usuário para um valor-alvo. O programa lê este valor em nTarget. O programa, em seguida, inicializa ambos nAccumulator e nValue para 1 antes de entrar no circuito.

(Preste atenção - esta é a parte interessante.) O programa compara nValue para nTarget. Suponha que o usuário tinha entrado um valor-alvo de 5. No primeiro ciclo, a questão torna-se, # 147-1 é menor do que ou igual a 5? # 148- A resposta é obviamente verdade, assim o controle flui para o loop.

O programa gera o valor de nAccumulator (1) e nValue (Também 1) antes de multiplicar nAccumulator de nValue e armazenar o resultado de volta para nAccumulator.

A última declaração nos incrementos de loop nValue 1-2.

Feito isso, o controle passa para trás até o enquanto declaração em que nValue (Agora 2) é comparado com nTarget (Ainda 5). # 147-Is 2 menor ou igual a 5? # 148- Claramente, verdade- tão fluxos de controle de volta para o loop. nAccumulator agora é definido como o resultado de nAccumulator (1) vezes nValue (2). Os últimos incrementos de instrução nValue a 3.

Este ciclo de diversão continua até nValue atinge o valor 6, o que já não é menos do que ou igual a 5. Neste ponto, o controlo passa para a primeira instrução para além da cinta fechada }. Isto é mostrado graficamente aqui.

image0.jpg

A saída real do programa aparece a seguinte para um valor de entrada de 5:

Este programa calcula factorial.Enter uma série de tomar fatorial de: 51 * 1 é igual a 11 * 2 é igual a 22 * ​​3 é igual a 66 * 4 é igual a 2.424 * 5 é igual a 1205 factorial é 120Press Enter para continuar. . .

Você não está garantido que o código dentro das chaves de um enquanto loop é executado em tudo: Se a expressão condicional é falsa a primeira vez que é avaliada, o controle passa em torno das chaves, sem nunca mergulho em Consideremos, por exemplo, a saída do programa fatorial quando o usuário insere um valor-alvo de 0.:

Este programa calcula factorial.Enter uma série de tomar fatorial de: 00 factorial é 1Prima Enter para continuar. . .

Não há linhas de saída são gerados a partir de dentro do loop porque a condição # 147-Is nValue inferior ou igual a 0 # 148- era falsa, mesmo para o valor inicial de 1. O corpo do enquanto laço nunca foi executado.

menu