Em C, as instruções if
e else
são usadas para controlar o fluxo do programa com base em condições. Elas permitem que você execute diferentes blocos de código dependendo se uma condição é verdadeira ou falsa.
if (condição) {
// bloco de código a ser executado se a condição for verdadeira
} else {
// bloco de código a ser executado se a condição for falsa (opcional)
}
Componentes:
condição
: Uma expressão booleana que deve ser avaliada como verdadeira (não zero) ou falsa (zero) para determinar qual bloco de código será executado.bloco de código
: Um conjunto de instruções que serão executadas se a condição for verdadeira (blocoif
) ou falsa (blocoelse
).
#include <stdio.h>
int main() {
int numero = 10;
if (numero > 0) {
printf("O número é positivo.\n");
} else {
printf("O número é negativo ou zero.\n");
}
return 0;
}
switch
em C é usada para realizar uma selecção entre várias alternativas com base no valor de uma expressão. É uma forma mais organizada e eficiente de lidar com múltiplas opções do que uma série de instruções if
e else if
. A estrutura básica do switch
é a seguinte:
switch (expressao) {
case valor1:
// Código a ser executado se expressao for igual a valor1
break;
case valor2:
// Código a ser executado se expressao for igual a valor2
break;
// Outros casos possíveis...
default:
// Código a ser executado se expressao não corresponder a nenhum dos valores anteriores
break;
}
#include <stdio.h>
int main() {
int opcao = 2;
switch (opcao) {
case 1:
printf("Opção 1 selecionada.\n");
break;
case 2:
printf("Opção 2 selecionada.\n");
break;
case 3:
printf("Opção 3 selecionada.\n");
break;
default:
printf("Opção inválida.\n");
break;
}
return 0;
}
Exemplo simples de como usar switch
em C:
#include <stdio.h>
int main() {
int option = 2;
switch (option) {
case 1:
printf("Opção 1 selecionada.\n");
break;
case 2:
printf("Opção 2 selecionada.\n");
break;
case 3:
printf("Opção 3 selecionada.\n");
break;
default:
printf("Opção inválida.\n");
break;
}
return 0;
}
Vantagens do uso de switch:
- Melhora a legibilidade: O
switch
torna o código mais organizado e fácil de ler, especialmente quando comparado a longas cadeias de instruçõesif-else if
. - Manutenção facilitada: Adicionar ou remover casos é simples, pois cada condição e seu código associado ficam agrupados.
- Eficiência: Em alguns casos, o
switch
pode ser mais eficiente que encadeamentos deif-else if
devido à optimizações realizadas pelo compilador.
Observações:
- Os valores nos casos (
case
) devem ser constantes e do mesmo tipo que a expressão sendo avaliada. - O
break
é crucial para evitar a execução descontrolada de casos subsequentes. - O bloco
default
é opcional, mas recomendado para lidar com valores inesperados da expressão.
O loop while
em C que permite executar um bloco de código repetidamente enquanto uma determinada condição permanecer verdadeira. É particularmente útil quando você não sabe de antemão quantas vezes precisa repetir o código ou quando o número de repetições depende de uma condição dinâmica.
#include <stdio.h>
int main() {
int i = 0; // Inicialização
while (i < 5) { // Condição: loop até que i chegue a 5
printf("Valor de i: %d\n", i);
i++; // Incrementa i para a próxima iteração
}
printf("Loop finalizado.\n");
return 0;
}
O do-while
é uma estrutura de controle de repetição, assim como o while
e o for
. A diferença é que o do-while
garante que o bloco de código dentro dele seja executado pelo menos uma vez, mesmo que a condição especificada seja falsa desde o início.
int i = 0;
do {
printf("Número: %d\n", i);
i++;
} while (i < 5);```
Vantagens:
- Garante que o bloco de instruções seja executado pelo menos uma vez, mesmo que a condição seja inicialmente falsa.
- Útil em situações onde a acção precisa ser executada pelo menos uma vez antes de verificar a condição.
Desvantagens:
- Pode levar à execução desnecessária do bloco de instruções, caso a condição seja falsa na primeira verificação.
- Requer atenção especial para evitar loops infinitos, pois a condição é testada após a execução do bloco.
O loop while
em C que permite executar um bloco de código repetidamente enquanto uma determinada condição permanecer verdadeira. É particularmente útil quando você não sabe de antemão quantas vezes precisa repetir o código ou quando o número de repetições depende de uma condição dinâmica.
#include <stdio.h>
int main() {
int i = 0; // Inicialização
while (i < 5) { // Condição: loop até que i chegue a 5
printf("Valor de i: %d\n", i);
i++; // Incrementa i para a próxima iteração
}
printf("Loop finalizado.\n");
return 0;
}
O do-while
é uma estrutura de controle de repetição, assim como o while
e o for
. A diferença é que o do-while
garante que o bloco de código dentro dele seja executado pelo menos uma vez, mesmo que a condição especificada seja falsa desde o início.
int i = 0;
do {
printf("Número: %d\n", i);
i++;
} while (i < 5);```
Vantagens:
- Garante que o bloco de instruções seja executado pelo menos uma vez, mesmo que a condição seja inicialmente falsa.
- Útil em situações onde a ação precisa ser executada pelo menos uma vez antes de verificar a condição.
Desvantagens:
- Pode levar à execução desnecessária do bloco de instruções, caso a condição seja falsa na primeira verificação.
- Requer atenção especial para evitar loops infinitos, pois a condição é testada após a execução do bloco.
O loop for
é uma estrutura de repetição fundamental na linguagem C. Ele permite executar um bloco de código várias vezes, de forma controlada.
for (inicialização; condição; incremento) {
// bloco de código a ser repetido
}
- inicialização: Esta expressão é executada apenas uma vez, no início do loop. É comum usada para inicializar uma variável de controle que será utilizada para contar o número de iterações.
- condição: Esta expressão é avaliada antes de cada iteração do loop. Se a condição for verdadeira, o bloco de código é executado. Se a condição for falsa, o loop termina.
- incremento: Esta expressão é executada após cada iteração do loop. É comum usada para atualizar a variável de controle para a próxima iteração.
#include <stdio.h>
int main() {
int i;
for (i = 1; i <= 5; i++) {
printf(" repetição número %d\n", i);
}
return 0;
}
continue
e break
são utilizados para alterar o fluxo de execução dentro de laços de repetição (for
, while
, do-while
) e também no comando switch-case
em C.
-
break
:- Interrompe imediatamente o loop de repetição em que está inserido.
- O programa continua a execução a partir da instrução seguinte ao loop.
-
continue
:- Interrompe a iteração actual do loop de repetição em que está inserido.
- O programa pula para a avaliação da condição do loop e, se verdadeira, executa a próxima iteração.
Exemplo demonstrando o uso de break
e continue
:
#include <stdio.h>
int main() {
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // Sai do loop quando i for igual a 5
}
if (i % 2 == 0) {
continue; // Pula para a próxima iteração se i for par
}
printf(" repetição ímpar número %d\n", i);
}
return 0;
}