• Nenhum resultado encontrado

CONDICIONAL / de SELEÇÃO / de DECISÃO

N/A
N/A
Protected

Academic year: 2021

Share "CONDICIONAL / de SELEÇÃO / de DECISÃO"

Copied!
5
0
0

Texto

(1)

LPI

ESTRUTURA de CONTROLE

CONDICIONAL / de SELEÇÃO / de DECISÃO

(CONTINUAÇÃO)

IFs ANINHADOS E ELSE IF

É comum precisarmos selecionar um entre vários blocos de comandos a serem

executados e não apenas um entre dois (if/else) blocos de comandos.

Quando há vários blocos possíveis e não apenas dois, devemos utilizar um conjunto

de ifs subordinados uns aos outros.

Dizemos que neste caso os comandos ifs devem estar aninhados. Código usando ifs aninhados com else if. Exemplo 1:

string estado, capital;

Console.WriteLine("Digite a sigla de um estado"); estado = Console.ReadLine();

if (estado.ToUpper() == "RJ") {

capital = "Rio de Janeiro"; }

else if (estado.ToUpper() == "SP") {

capital = "São Paulo"; }

else if (estado.ToUpper() == "MG") {

capital = "Belo Horizonte"; }

else if (estado.ToUpper() == "BA") {

capital = "Salvador"; }

else

{

capital = "Não sei"; }

Console.WriteLine("Estado: " + estado.ToUpper() + " Capital: " + capital); Console.ReadKey();

.ToUpper()

converte os caracteres

para maiúsculos.

Obs.: .ToLower() converte os caracteres para minúsculos.

Qual a diferença para o comando switch ?

(2)

Código usando ifs aninhados com else if. Exemplo 2:

O exemplo a seguir determina se um caractere de entrada é um número, uma

letra maiúscula ou uma letra minúscula. Se todas as três condições forem falsas,

o caractere não é um caractere alfanumérico. O exemplo exibe uma mensagem para cada caso.

char ch; // char É UM SÓ CARACTERE, NESTE CASO USAR Read E NÃO ReadLine. Console.Write("Entre um caractere: ");

ch = Convert.ToChar(Console.Read()); // NOTE O Read NO LUGAR DO ReadLine

if (Char.IsUpper(ch)) // Char.IsUpper(ch) RETORNA True SE A VARIÁVEL ch { // GUARDA UMA LETRA MAIÚSCULA. Poderíamos escrever:

// if (Char.IsUpper(ch) == True) mas não é necessário. Console.WriteLine("O caractere é uma letra maiúscula.");

}

else if (Char.IsLower(ch)) //Char.IsLower(ch) RETORNA True SE A VARIÁVEL ch

{ // GUARDA UMA LETRA MINÚSCULA.

Console.WriteLine("O caractere é uma letra minúscula."); }

else if (Char.IsDigit(ch)) //Char.IsDigit(ch) RETORNA True SE A VARIÁVEL ch

{ // GUARDA UM DÍGITO (NÚMERO).

Console.WriteLine("O caractere é um número."); }

else

{

Console.WriteLine("O caractere não é alfanumérico."); }

Console.ReadKey();

//Exemplos de Entrada e Saída correspondente: //Entrada (valor informado para ch): E

//Saída: O caractere é uma letra maiúscula. //Entrada (valor informado para ch): e

//Saída: O caractere é uma letra minúscula. //Entrada (valor informado para ch): 4

//O caractere é um número.

//Entrada (valor informado para ch): # //O caractere não é alfanumérico.

(3)

Código usando ifs aninhados sem usar else if. Exemplos:

a) No exemplo a seguir, o texto “Result1” é exibido se m>10 e n>20 forem avaliadas como true (verdadeiro), quando m>10 for true e n>20 for false (falso), “Result2” é o texto que será exibido.

int m = 12; int n = 18; if (m > 10) { // a chave { é opcional if (n > 20) { Console.WriteLine("Result1"); } else { Console.WriteLine("Result2"); } } // a chave } é opcional Console.ReadKey(); Exercício 1:

Qual o resultado do código acima? __________________________ Qual o resultado quando m = 8? _____________________________

b) Se, em vez disso, desejamos que “Result2” seja a mensagem exibida

quando m>10 for false (independentemente do valor de n), podemos especificar

essa associação usando chaves para estabelecer o início e o fim da instrução if aninhada, como mostra o exemplo a seguir.

int m = 12; int n = 18; if (m > 10) { if (n > 20) Console.WriteLine("Result1"); } else { Console.WriteLine("Result2"); } Console.ReadKey(); Exercício 2:

Qual o resultado do código acima? _______________________________ Qual o resultado quando m=8? ___________________________________

As chaves

{ }

,tanto no if quanto no else, são opcionais

quando há apenas um comando a ser executado.

Obs.: Neste exemplo, dentro do 1º if “if (m>10)” há apenas um comando a ser executado: o if (n>20). Assim, não é necessário por as chaves envolvendo o código do 2º if.

Lembre-se! O else não existe só, ele pertence ao comando if.

(4)

c) No exemplo a seguir, o usuário insere um caractere do teclado e o programa usa uma construção (um código) com comandos if para determinar se o caractere de entrada é um caractere alfabético. Se o caractere de entrada é um caractere alfabético, o programa verifica se o caractere de entrada é

maiúsculo ou minúsculo. Será exibida uma mensagem para cada caso.

char c; // char É UM SÓ CARACTERE, NESTE CASO USAR Read E NÃO ReadLine. Console.Write("Entre um caractere: ");

c = (char)Console.Read(); // NOTE O Read (1 caractere) NO LUGAR DO ReadLine. // O (char) significa forçar a conversão de

// string para char (poderia usar Convert.ToChar). if (Char.IsLetter(c)) // Char.IsLetter(C) RETORNA True SE A VARIÁVEL

{ // C GUARDA UMA LETRA (CARACTERE ALBETICO).

if (Char.IsLower(c)) // Char.IsLower(C) RETORNA True SE A VARIÁVEL C { // GUARDA UMA LETRA MINÚSCULA (existe .IsUpper).

Console.WriteLine("O caractere é minúsculo"); }

else

{

Console.WriteLine("O caractere é maiúsculo."); }

} else

{

Console.WriteLine("O caractere não é alfabético."); }

Console.ReadKey();

Exercício 3:

Qual o resultado do código acima para c=b ? _________________________ Qual o resultado quando c=8 ? ______________________

Qual o resultado quando c=A ? ______________________

c = (char)Console.Read();

É semelhante ao comando de conversão que temos usado:

(5)

Exercício 4:

Execute mentalmente o código abaixo.

bool condição1 = true;

bool condição2 = true;

bool condição3 = true;

bool condição4 = true;

if (condição1) {

Console.WriteLine("Condição1 é verdadeira"); }

else if (condição2) {

Console.WriteLine("Condição1 é falsa e condição2 é verdadeira"); }

else if (condição3) {

if (condição4) {

Console.WriteLine("Condição1 e condição2 são falsas. Condição3 e condição4 são verdadeiras");

} else

{

Console.WriteLine("Condição1, condição2 e condição4 são falsas. Condição3 é verdadeira");

}

} // Esta chave é o fechamento de qual chave de abertura?

else

{

Console.WriteLine("Condição1, condição2 e condição3 são falsas."); }

Console.ReadKey();

Qual a resposta para a pergunta (comentário em verde)? ___________________________ Qual resultado será exibido pelo código acima? _____________________________________ Qual resultado será exibido para os dados de entrada abaixo? _______________________

bool condição1 = false;

bool condição2 = false;

bool condição3 = true;

bool condição4 = false;

As variáveis condição1, ..., condição4 são do tipo BOOL (lógico). Podem apenas assumir os valores True ou False (não são string!)

Referências

Documentos relacionados

Este trabalho discute a formação escolar e novas perspectivas para as atividades econômicas em comunidades rurais da Microrregião de Itapecuru-Mirim, Estado

O processo seletivo será realizado através da avaliação do desempenho escolar da pessoa inscrita, para isso se faz necessário o cadastro do boletim escolar

apenas depois de esgotar todas as alternativas no presente

A proposta do projeto apoiado pela CCR NovaDutra e desenvolvido em São José dos Campos (SP), pelo São José Rugby Clube é contribuir para a promoção social por meio do

Pseudoplusia includens e Spodoptera eridania foram encontradas (lagartas e danos) nos dois tipos de cultivares, como na safra.. anterior, confirmando a necessidade

Importante: é necessário que as coordenações dos Programas de Pós-Graduação tenham cadastrado no SIGAA as suas linhas de pesquisa, caso contrário, não será possível selecionar

Não há dúvida que o resgate da inteligência insular matriarcal é indispensável na Antropologia e na Psicologia para operar lado a lado com a inteligência polarizada

• Se em uma variável do tipo char podemos armazenar somente um caractere, então para armazenar vários caracteres (ex: “jose”, “carro”) é necessário utilizar