Enquanto lacetes em c ++
Uma característica fundamental na programação C ++ é a capacidade de circuito. C ++ oferece três construções de loop em C ++. o enquanto
Conteúdo
Video: Why C++ Sails When the Vasa Sank
while (expressão) {// coisas para fazer em um loop} // continue aqui uma vez expressão é falsa
Quando um programa vem em cima de um enquanto circuito, que em primeiro lugar a expressão nos parênteses. Se esta expressão é 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. O controlo continua para o ciclo através de codeína as cintas até expressão avalia a falso (Ou até que outra coisa quebra o loop).
Video: Parte 4 (Dev-C++) - Problema da Equação do 2º Grau com Condições
Os seguintes Fatorial programa demonstra o enquanto loop:
Factorial (N) = N * (N-1) * (N-2) * ... * 1 //// factorial - calcular factorial utilizando o enquanto // construct.//#include#incluir #incluir usando espaço de nomes std-int principal (int nNumberofArgs, char * pszArgs []) {// introduzir 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 gt; gt; nTarget - // inicia com um acumulador que é inicializado para 1int nAccumulator = 1int nValue = 1-while (nValue lt; = nTarget) {cout lt; lt; nAccumulator lt; lt; " * "lt; lt; nValue lt; lt; " é igual a "-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 () - 0-} retornar
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.
Video: CppCon 2016: James McNellis “Introduction to C++ Coroutines"
(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, “é um menor ou igual a 5?” A resposta é, obviamente, verdade, assim o controlo flui para o circuito.
O programa gera o valor de nAccumulator (1) e nValue (Também um) antes de multiplicar nAccumulator de nValue e armazenando o resultado de volta para nAccumulator.
Video: C++ - Correção de Atividades #20
A última declaração nos incrementos de loop nValue 1-2.
Feito isso, o controle passa para trás até o enquanto declaração onde nValue (Agora 2) é comparado com nTarget (Ainda 5). “É de 2 menor ou igual a 5?” Claramente, verdade- tão controle flui de volta para o loop. nAccumulator agora está definido para o resultado de nAccumulator (1) vezes nValue (2). Os últimos incrementos declaraçã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 }. Isso é mostrado graficamente aqui.
A saída real do programa aparece como se segue para um valor de entrada de 5:
Este programa calcula factorial.Enter um número para tomar fatorial de: 51 * 1 é igual a 11 * 2 é igual a 22 * 3 é igual a 66 * 4 é igual a 2424 * 5 é igual a 1205 fatorial é 120Press Enter para continuar. . .
Você não está garantido que o código dentro das chaves de um enquanto laço é 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 Considere, por exemplo, a saída do programa fatorial quando o usuário insere um valor-alvo de 0.:
Este programa calcula factorial.Enter um número para 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 “é nValue menor ou igual a 0” era falsa até mesmo para o valor inicial de 1. O corpo do enquanto laço nunca foi executado.