Os laços de
repetição permite que um conjunto de instruções seja repetido até que
uma condição seja encontrada. A linguagem C suporta os mesmos tipos de laços
que outras linguagens estruturadas modernas. Os laços em C são o for,
o while e o do-while. Nesse post teremos como foco
o Laço WHILE
Forma Geral:
while (condição){
comandos;
}
Condição pode ser qualquer
expressão válida. O laço é repetido enquanto a condição for verdadeira.
Quando a condição torna-se falsa, o controle do programa passa
para a linha seguinte ao código do laço.
O exemplo a seguir mostra uma rotina
de entrada pelo teclado que se
repete até que o caractere A seja
digitado.
#include<stdio.h>
#include<conio.h>
main(){
char ch;
ch = '\0';
while (ch != 'A'){
ch = getche();
}
}
A princípio, a variável ch é
inicializada com nulo. Como uma variável local, o seu valor é desconhecido
quando a rotina
quando o laço é executada. O laço while começa
checando para ver se ch não é igual a A. Uma vez que
ch foi inicializado como nulo de antemão, o teste é verdadeiro e
o laço tem início.
Cada vez que uma tecla é pressionada,
o teste se realiza novamente. Assim que um A é informado, a
condição torna-se falsa, já que a variável ch é igual a A,
e o laço encerra-se.
Assim como os laços for,
os laços while verificam a condição do teste no início do laço, o
que significa dizer que o código do laço pode não ser executado.
A variável ch teve de
ser inicializada no exemplo anterior para prevenir de acidentalmente conter um A.
Como o teste condicional é feito no início do laço, o while é bom
em situações em que se pode não querer que o laço seja executado.
Isto elimina a necessidade de um teste
condicional separado antes do laço.
Por exemplo, a função centraliza(
), no programa seguinte, usa um laço while para emitir o
número correto de espaços para centralizar a linha em uma tela de oitenta
colunas. Se tamanho é igual a zero, como é o correto se a linha a
ser centralizada tiver 80 caracteres, o laço não é executado. Este programa usa
outras duas funções chamadas gets( ) e strlen( ). A função gets(
) permite ler uma string diretamente do teclado; a função strlen(
) retorna o tamanho da string argumento. Esta última função está na
biblioteca string.h.
#include <stdio.h>
#include
<string.h>
#include <conio.h>
void centraliza (int tamanho) {
tamanho = (80 - tamanho)/2;
while (tamanho > 0){
printf (" ");
tamanho--;
}
}
main(){
char str[255];
int tamanho;
printf ("Insira uma string: ");
gets (str);
centraliza (strlen (str));
printf (str);
getche();
}
Não há, em absoluto, a necessidade de
qualquer declaração no corpo do
laço while. Por exemplo.
while (ch = getche() != ‘A’);
Simplesmente será repetido
até que o caractere A seja digitado. Se você se sentir pouco confortável com a
atribuição dentro da expressão condicional while, lembre-se de que
o sinal de igual é somente um operador que especifica o valor do operando à sua
direita.
Espero ter esclarecido
algumas de suas duvidas, caso algumas tenha permanecido ou você tenha uma
sugestão de nova postagem deixe um comentário.
Para dar continuidade aos posts sobre linguagem C, escolha um dos links abaixo:
“O dinheiro não pode comprar o amor, mas aumenta tuas possibilidades.”(Laurence Peter)
0 comentários:
Postar um comentário