Na última postagem falei sobre as funções printf e scanf. E hoje vamos ver os comandos condicionais e laços (loops).
ESTE É UM POST ANTIGO
Este post foi importado do antigo blog e o seu conteúdo não foi revisado. O conteúdo deve estar desatualizado e a formatação pode apresentar problemas.
Comando condicional if
O comando if (SE) permite que façamos comparações entra valores e executemos uma determinada ação. Seu protótipo é:
if (condicao) { acao1; acao2; ... }
Temos ainda o comando else que acompanha o if como uma condição padrão, caso o if não seja satisfeito. Ainda, podemos utilizá-los em conjunto, formando a estrutura else if. Um exemplo:
int num; scanf("%d", &num); // Primeira verificação: num é maior que 10? if (num > 10) { printf("O número é maior que 10"); } // Se não é maior que 10, então é igual a 10? else if (num == 10) { // repare que precisamos utilizar dois == para comparação (não apenas um) printf("O número é igual 10"); } // Se não é nem maior que 10 e nem igual, então é menor. else { printf("O número é menor que 10"); }
Laço (loop) for
O comando for permite repetição de comandos. Seu protótipo é:
for (contador; contador < limite; incremento) { acao1; acao2; ... }
contador é uma variável de controle, quem é somada ou subtraída de incremento unidades até a condição contador < limite ser atingida. Exemplo:
int cont; for (cont = 0; cont < 100; cont++) { /* o que estiver aqui dentro será executado 100 vezes, já que cont começa com 0 (cont = 0) e é incrementado de uma unidade (cont++) até atingir o limite (cont < 100), quando termina o loop e continua a execução depois do bloco. */ } // depois que cont chegar a 100, continua a partir daqui
Laços (loop) whilee do…while
Os comandos while e do…while também permitem repetição de comandos, mas diferentemente do for não é necessário estabelecer um limite final, apenas uma condição que é verificada a cada volta do loop e, quando for falsa, sai do loop. A diferença entre while e do…while é pequena: o while verifica a condição antes de executar qualquer coisa, enquanto que o do…while sempre executa pelo menos uma vez o bloco antes de fazer a verificação. Vejamos um exemplo com while:
int valor = 1; // valor começa com 1
while (valor != 0) { // e enquanto valor for diferente de zero
scanf("%d", &valor); // um novo valor é lido
}
// o bloco termina quando o usuário digitar 0
Podemos fazer a mesma coisa utilizando o do…while:
int valor; // valor é apenas declarado
do { // faça:
scanf("%d", &valor); // ler um valor
} while (valor != 0); // enquanto valor for diferente de zero
// o bloco termina quando o usuário digitar 0
O mesmo resultado, de duas formas diferentes! 😀
Utilidade: break e continue
Dentro dos loops (for, while e do…while) temos duas palavras que podem ser úteis em alguns casos: break e continue.
- break: utilizado para encerrar um loop, mesmo se a condição principal não foi atingida:
while (num <= 20) { // enquanto num for menor ou igual a 20 num++; if (num == 12) { break; // o loop while será encerrado quando num for igual a 12 } }
- continue: utilizado para ignorar o resto do loop e realizar a próxima verificação:
for (num = 20; num >= 0; num--) { // vamos de 20 até 0 if (num == 6) continue; printf("num é diferente de 6"); // nesse exemplo, quando num for igual a 6 vai ignorar o printf }
Bem, acho que isso conclui o assunto sobre condições e loops. Caso tenham alguma dúvida ou sugestão, não deixem de comentar 😉