Condicionais e Laços de Repetição
Editado por: Bruno Rafael Comin Scheffel
Condicionais e Laços de repetição
Conteúdo
Condicionais
Os programas escritos até agora são programas sequencias: um comando é executado após o outro. Entretanto, há casos em que é preciso que um bloco de comandos seja executado somente se determinada condição for verdadeira. Para isso, usamos condicionais. Os principais são o if / else if / else e o switch / case, que não vamos passar por hora.
if / else if / else
Assim como em Python, é a estrutura mais básica de controle de fluxo. A sintaxe é um pouco diferente de Python: a condição precisa estar entre parênteses e o bloco de código a ser executado deve estar delimitado por chaves.
if (condição) {
// executado se a condição for verdadeira
} else if (outra condição) {
// executado se a segunda condição for verdadeira e a primeira falsa
} else {
// executado se nenhuma condição anterior for verdadeira
}
Exemplo
int nota = 75;
if (nota >= 100) {
cout << "Prova Gabaritada" << endl;
} else if (nota >= 60) {
cout << "Aprovado" << endl;
} else {
cout << "Reprovado" << endl;
}
Laços de Repetição
Agora sabemos como realizar desvios condicionais em um programa. Entretanto, há casos em que é preciso que um bloco seja executado mais de uma vez. Para realizar isso sem repetição de código, usamos laços de repetição.
for
É usado quando você sabe quantas vezes quer repetir.
for (inicialização; condição; incremento) {
// bloco de código
}
Exemplo
Nesse exemplo, o bloco repete 5 vezes, retornando o valor de i a cada iteração.
for (int i = 0; i < 5; i++) {
cout << i << endl;
}
while
Repete enquanto uma condição for verdadeira. Usado quando não se sabe quantas iterações serão necessárias.
while (condição){
// bloco de código
}
do while
Similar ao while, mas garante que o bloco execute pelo menos uma vez antes de checar a condição.
do {
//bloco de código
} while(condição);
break e continue
Duas palavras-chaves que controlam o fluxo dentro de laços.
break
O comando break faz com que a execução do programa continue na primeira linha seguinte ao laço que está sendo interrompido. Ou seja, o comando ordena a saída do laço imediatamente.
Exemplo
for (int i = 0; i < 10; i++) {
if (i == 5) break;
cout << i << " ";
}
continue
Enquanto o comando break termina o comando de repetição, o comando continue interrompe apenas aquela iteração que está sendo executada.
Exemplo
for (int i = 0; i < 6; i++) {
if (i % 2 == 0) continue;
cout << i << " ";
}
Conteúdo Adicional
O condicional switch / case
Além dos comandos if e else, a linguagem C++ possui um comando de seleção múltipla chamado switch (assim como o Python). É usado quando você precisa comparar uma variável com vários valores fixos.
switch(variável) {
case x:
// executado caso o valor da variável seja x
break;
case y:
// executado caso o valor da variável seja y
break;
default:
// executado caso o valor da variável não seja nenhum valor acima
}
Operadores de Comparação
| Operador | Significado | Exemplo | Resultado |
|---|---|---|---|
== |
Igual a | 5 == 5 |
true |
!= |
Diferente de | 5 != 3 |
true |
> |
Maior que | 2 > 3 |
false |
< |
Menor que | 2 < 8 |
true |
>= |
Maior ou igual | 5 >= 6 |
false |
<= |
Menor ou igual | 4 <= 6 |
true |
Operadores Lógicos
| Operador | Significado | Exemplo | Resultado |
|---|---|---|---|
&& |
E lógico | 3 > 2 && 9 < 8 |
false |
|| |
OU lógico | 10 > 8 || 100 < 9 |
true |
! |
NÃO lógico | !(2 > 3) |
true |
Aninhamento de repetições
Uma repetição aninhada é um comando de repetição utilizado dentro do bloco de código de um outro comando de repetição.
Exemplo
#include <iostream>
using namespace std;
int main() {
int linhas = 5;
for (int i = 1; i <= linhas; i++) {
for (int j = 1; j <= i; j++) {
cout << "* ";
}
cout << endl;
}
return 0;
}
Leitura até EOF (while(cin >> x))
EOF = End Of File (Final do Arquivo)
Utilizamos essa estrutura de while para armazenar valores
Exercícios
Torneio da Semana:
Exercícios da Aula:
Condiconais:
1041 - Coordenadas de um Ponto
Laço Repetição:
Slides
https://embed.figma.com/deck/vydxPdr8TYoAaeoFSUd2SR?embed-host=notion&footer=false&theme=system
