TEMA 4 | ESTRUTURAS DE SELEÇÃO

 

A. SELEÇÃO EM JAVA


 

Vimos, no Tema 1, que o controle de fluxo de um algoritmo/programa pode ser assegurado por três estruturas de controlo básicas: sequência, seleção e repetição. Neste tema vamos estudar as estruturas de seleção, que podem ser:


1) Seleção simples 

É implementada pela instrução if e a sua sintaxe é:

if (condição)

instrução;

 

A condição é uma expressão lógica.
Caso o resultado da condição seja true a instrução é executada, caso seja false a instrução não é executada.

Cf. Exemplo

import java.util.*;

public class Par {

public static void main (String[] args) {

int num;

System.out.print (“Qual o número ? “);

Scanner sc = new Scanner(System.in);

num = sc.nextInt();

if (num % 2 == 0)

System.out.println (“Número é par”);

}

}

(Clique nas setas para avançar e retroceder no exemplo apresentado)  

 

2) Seleção em alternativa 

É implementada pela instrução if – else, cuja sintaxe é:

if (condição)

instrução 1;

else instrução 2;

 

A condição é uma expressão lógica.
Se o resultado da condição for true a instrução 1 é executada, se for false é executada a instrução 2. 

Cf. Exemplo

import java.util.*;

public class ParOuImpar {

public static void main (String[] args) {

int num;

System.out.print (“Qual o número ? “);

Scanner sc = new Scanner(System.in);

num = sc.nextInt();

if (num % 2 == 0)

System.out.println (“Número é par”);

else System.out.println (“Número é impar”);

}

}

(Clique nas setas para avançar e retroceder no exemplo apresentado)  

 

Como selecionar entre várias alternativas?

A execução de uma estrutura encadeada de instruções if permite escolher uma de várias alternativas, em função do resultado das diversas condições utilizadas.
As condições são calculadas por ordem até que uma delas dê true, sendo então executadas as instruções respetivas. Depois passa a ser executada a instrução seguinte a esta estrutura.
Caso nenhuma expressão dê true são executadas as instruções relativas ao último else (se existir).

Cf. Exemplo

Selecionar uma de três alternativas em função do valor de uma variável. Se nenhuma se verificar deve fazer a instrução 4.

if (num >= 1 && num <= 10)

instrução 1;

else if (num > 10 && num <= 20)

instrução 2;

else if (num > 20 && num <= 30)

instrução 3;

else instrução 4;

 

Cf. Exemplo

Dada a idade de uma pessoa definir o tipo de bilhete

import java.util.*;

public class Bilhete {

public static void main(String[] args) {

int idade;

System.out.print (“Idade: “);

Scanner sc = new Scanner(System.in);

idade = sc.nextInt();

if (idade <= 6) {

System.out.println (”Isento de pagamento");

} else if (idade <= 12) {

System.out.println (”Bilhete de criança ");

  } else if (idade <= 65) {

System.out.println (”Bilhete normal");

  } else System.out.println (”Bilhete de terceira idade");

}

}

Repare como os ifs estão encadeados ou ligados, através dos else, e, cada caso o programa só segue um caminho possível.

(Clique nas setas para avançar e retroceder no exemplo apresentado)  

 

3) Seleção múltipla 

É implementada pela instrução switch que permite escolher uma de várias alternativas, em função do valor de uma expressão. Esta instrução tem a seguinte sintaxe:

switch (expressão) {

case valor1 : instrução 1; break;

case valor2 : instrução 2; break;

...

case valorn : instrução n; break;

default : outra instrução; break;

}

 

A expressão utilizada numa instrução switch terá que ter um resultado inteiro ou caracter.
A instrução break é colocada no fim das instruções relativas a cada case. Tem como função provocar o fim do switch.
A opção default (pode não existir) é executada se o valor da expressão não for igual a nenhum dos valores utilizados no switch (valor1, … valorn).

Cf. Exemplo

switch (op) {

case ‘+’ : resul = x + y; break;

case ‘-’ : resul = x - y; break;

case ‘*’ : resul = x * y; break;

case ‘/’ : if (y != 0)

resul = x / y;

else {

System.out.println (“Atenção! Divisão por zero”);

resul = 0.0;

}

break;

}

(Clique nas setas para avançar e retroceder no exemplo apresentado)