Essa condição pode ser feita no começo do laço ou no final do laço.
Vimos com o for
o que é um laço de repetição contado, agora iremos ver o que é um laço de repetição condicional.
Laço de repetição condicional é uma estrutura que irá executar uma instrução que está dentro de seu escopo sempre que a condição de teste for verdadeira.
Essa condição pode ser feita no começo do laço ou no final do laço.
Se a condição é realizada no começo do laço, então temos um laço while
A repetição com teste no início apenas inicia o conjunto de instruções caso a condição teste seja verdadeira (testado antes de executar as instruções de dentro) e continua o laço enquanto ela for verdadeira.
Faça um algoritmo que leia a variável SEXO. Enquanto o valor fornecido não for correto (‘M’, ‘m’, ‘F’, ‘f’), exibir mensagem de erro e ler novamente. Quando for fornecido um valor correto, ler a variável ANO. Escrever ANO e SEXO na tela.
#include < stdio.h > int main () { int ano; char sexo; printf("Informe o sexo (M/F):\n"); scanf(" %c", &sexo); // A variável de controle deve ter um valor conhecido. Neste caso ela foi lida antes do laço. while ((sexo != 'M') && (sexo != 'm') && (sexo != 'F') && (sexo != 'f')) { printf("Erro! Valor invalido!\n"); printf("Informe o sexo novamente (M/F):\n"); //A variável de controle deve ter seu valor modificado dentro do laço. //Neste caso, ela foi lida novamente. scanf(" %c", &sexo); } printf("Informe o ano:\n"); scanf("%d", &ano); printf("%d - %c\n", ano, sexo); return 0; }
Dado um valor n, imprima na tela o valor de n! (1 * 2 * ... * (n-1) * n)
#include < stdio.h > int main () { int n, i, fat; printf("Informe um número:\n"); scanf("%d", &n); fat = 1; i = 2; while (i <= n) { fat *= i; /* fat = fat * i */ i++; } printf("O fatorial de %d eh %d.\n", n, fat); return 0; }Execução
Vimos com o for
o que é um laço de repetição contado e com o while
o que é um laço de repetição condicional com teste no início.
O próximo laço de repetição a ser estudado é com teste da condição no final do código.
Lembre-se: a repetição com teste no início testa a condição antes de executar o laço. A repetição com teste no final, por sua vez, testa a condição apenas depois de executar o laço, ou seja, ele é executado pelo menos uma vez. Em qualquer uma das duas, o laço só continua sendo executado enquanto a condição for verdadeira.
Elabore um algoritmo que solicite números inteiros enquanto os numeros digitados sejam diferentes de 0. O algoritmo deverá informar, ao final, qual a soma dos numeros informados.
int n, soma = 0; do{ printf("Digite um numero: "); scanf("%d", &n); soma += n; }while(n != 0); printf("Soma total = %d\n",soma);
Exemplo 1 no terminal
Digite um numero: 25 Digite um numero: 25 Digite um numero: 50 Digite um numero: 0 Soma total = 100
Exemplo 2 no terminal
Digite um numero: 0 Soma total = 0
Note que mesmo digitando 0 como primeiro número (segundo exemplo) as instruções do while ainda são executadas uma vez.