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:

1035 - Teste de Seleção 1

1037 - Intervalo

1040 - Média 3

1041 - Coordenadas de um Ponto

1042 - Sort Simples

1050 - DDD

Laço Repetição:

1061 - Tempo de um Evento

1078 - Tabuada

1080 - Maior e Posição

1095 - Sequencia IJ 1

1114 - Senha Fixa

Slides

https://embed.figma.com/deck/vydxPdr8TYoAaeoFSUd2SR?embed-host=notion&footer=false&theme=system