Escolar Documentos
Profissional Documentos
Cultura Documentos
Estruturas de Seleção
Departamento de Computação
Universidade Federal de Ouro Preto
2023.1
1/29
1 Expressões relacionais e lógicas
2 Estruturas de Seleção
2/29
Tópicos
2 Estruturas de Seleção
3/29
Relembrando...
#include <iostream>
4/29
Tipos de dados
5/29
Tipo de dados lógico
int x = 10;
int y = 8;
expressão resultado
x < y falso
x != y verdadeiro
x <= 10 verdadeiro
y > x + 6 falso
6/29
Operadores relacionais
O valor inteiro zero é tratado como falso e os diferentes de zero como verdadeiro
operador significado
== igual a
!= diferente
>= maior ou igual
> maior
<= menor ou igual
< menor
7/29
Operadores relacionais (cont.)
int x = 10;
int y = 8;
expressão valor
x > y true
x != y true
y >= 100 false
x < y false
x <= 10 true
y > x-6 true
8/29
Operadores lógicos
Utilizados para conectar duas expressões lógicas (cujo resultado é verdadeiro ou falso).
Sintaxe:
A B A && B A B A || B A !A
V V V V V V V F
V F F V F V F V
F V F F V V
F F F F F F
9/29
Operadores lógicos (cont.)
bool b;
int x = 10;
int y = 8;
int e = 44;
char c = 'w'
expressão valor
x > y && x > e false
x > y || x < e true
x > y && x < e true
!(x < y) true
c == 'W' || c == 'w' true
10/29
Tópicos
2 Estruturas de Seleção
11/29
Estruturas condicionais
Permitem selecionar um comando a ser executado com base em uma condição, representada por
uma expressão lógica.
Classificadas em três tipos:
condicional simples;
condicional composto;
seleção entre duas ou mais sequências de comandos.
12/29
Estrutura condicional simples
Permite a escolha do grupo de ações a ser executado quando determinada condição é satisfeita.
Comando if
Todo comando if requer uma condição
I Verdadeira ou falsa
I Caso seja verdadeira, executa um conjunto de instruções
Sintaxe
if (<condição>)
<comando1 >;
13/29
Estrutura condicional simples (cont.)
Exemplo:
#include <iostream>
int main() {
int num;
cout << "Digite um número: ";
cin >> num;
if (num > 0)
cout << "positivo" << endl;
return 0;
}
14/29
Estrutura condicional composta
Permite a escolha entre dois grupos de ações a serem executados, dependendo se uma determinada
condição é satisfeita ou não.
Comando if-else
Utilizado quando existe um outro conjunto de instruções a ser executado quando o valor da condição
é falso.
Sintaxe
if (<condição>)
<comando1 >;
else
<comando2 >;
15/29
Estrutura condicional composta (cont.)
Exemplo:
#include <iostream>
int main () {
int num;
cout << "Digite um número: ";
cin >> num;
if (num > 0)
cout << "positivo" << endl;
else
cout << "não é positivo" << endl;
return 0;
}
16/29
Aninhamento de if
17/29
Aninhamento de if (cont.)
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Digite um número:";
cin >> num;
if (num > 0)
cout << "positivo" << endl;
else
if (num < 0)
cout << "negativo" << endl;
else
cout << "nulo" << endl;
return 0;
}
18/29
Aninhamento de if (cont.)
Ou ainda:
#include <iostream>
using namespace std;
int main() {
int num;
cout << "Digite um número:";
cin >> num;
if (num > 0)
cout << "positivo" << endl;
else if (num < 0)
cout << "negativo" << endl;
else
cout << "nulo" << endl;
return 0;
}
19/29
Bloco de comandos
Um bloco é uma sequência de instruções agrupadas que podem ser executadas como se fosse um
único comando.
Sintaticamente é delimitada por chaves.
Variáveis declaradas dentro de um bloco são locais ao bloco.
Usamos bloco de comandos quando precisamos escrever vários comandos em um contexto onde
expera-se um único comando, como por exemplo nas alternativas do comando condicional.
20/29
Bloco de comandos (cont.)
#include <iostream>
using namespace std;
int main() {
double num = 10;
char c = 's';
{
cout << "Bloco 1" << endl;
double dinheiro = 3.55;
cout << "O valor é: " << dinheiro << endl;
}
// cout << "O valor é: " << dinheiro << endl; /* ERRO */
cout << "Informe um numero: ";
cin >> num;
if (num == 50)
cout << "Bloco IF" << endl;
else {
cout << "Bloco ELSE" << endl;
cout << endl;
}
return 0;
}
21/29
Exercício
22/29
Comando switch
23/29
Comando switch (cont.)
#include <iostream> break;
using namespace std; case 6:
cout << "sábado";
int main() { break;
int dia; case 7:
cout << "Dia da semana (inteiro)? "; cout << "domingo";
cin >> dia; break;
switch (dia) { }
case 1: return 0;
cout << "segunda-feira"; }
break;
case 2:
Dia da semana (inteiro)? 5
cout << "terça-feira";
sexta-feira
break;
case 3:
cout << "quarta-feira";
break;
case 4:
cout << "quinta-feira";
break;
case 5:
cout << "sexta-feira"; 24/29
Comando switch: exemplo
25/29
Comando switch: exemplo (cont.)
// Calculadora simples break;
#include <iostream> case '/':
using namespace std; cout << num1 << " / " << num2
int main() { << " = " << num1 / num2;
char oper; break;
double num1, num2; default:
cout << "Operador (+, -, *, /): "; // operador não é nenhuma das
cin >> oper; // constantes (+, -, *, /)
cout << "Operandos: "; cout << "Erro: operador incorreto";
cin >> num1 >> num2; break;
switch (oper) { }
case '+': return 0;
cout << num1 << " + " << num2 }
<< " = " << num1 + num2;
break; Operador (+, -, *, /): *
case '-': Operandos: 45.1 2.0
cout << num1 << " - " << num2 45.1 * 2 = 90.2
<< " = " << num1 - num2;
break; Operador (+, -, *, /): ^
case '*': Operandos: 2 3
cout << num1 << " * " << num2 Erro: operador incorreto
<< " = " << num1 * num2; 26/29
Comando switch: exemplo
27/29
Comando switch: exemplo (cont.)
#include <iostream> break;
using namespace std; }
int main() { return 0;
char letra; }
cout << "Digite uma letra: ";
cin >> letra;
switch(letra) { Digite uma letra: E
case 'A': E
case 'B':
cout << "A ou B" << endl; Digite uma letra: C
break; C ou D
E
case 'C':
case 'D':
cout << "C ou D" << endl;
case 'E':
cout << "E" << endl;
break;
default:
cout << "Letra maior que E" << endl; 28/29
Fim
29/29