Java Operadores Relacionais e lógicos Constutores de decisão(if,switch)

Java Operadores Relacionais e lógicos Constutores de decisão(if,switch). Linguagem Java.
Sumario: Operadores Relacionais e lógicos,Constutores de decisão(if,switch)
*Lembre sempre da tabela de precedência de Operadores

Quais são os Operadores em java?
Source: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/opsummary.html

Simple Assignment Operator

= Simple assignment operator

Arithmetic Operators

+ Additive operator (also used for String concatenation)
– Subtraction operator
* Multiplication operator
/ Division operator
% Remainder operator

Unary Operators

+ Unary plus operator; indicates positive value (numbers are positive without this, however)
– Unary minus operator; negates an expression
++ Increment operator; increments a value by 1
– Decrement operator; decrements a value by 1
! Logical compliment operator; inverts the value of a boolean(NOT)

Equality and Relational Operators

== Equal to
!= Not equal to
> Greater than
>= Greater than or equal to

Conditional Operators

&& Conditional-AND
|| Conditional-OR
?: Ternary (shorthand for if-then-else statement)

Type Comparison Operator

instanceof Compares an object to a specified type

Bitwise and Bit Shift Operators

~ Unary bitwise complement

>> Signed right shift
>>> Unsigned right shift
& Bitwise AND
^ Bitwise exclusive OR
| Bitwise inclusive OR

Operadores Relacionais:
Os operadores relacionais são usados para comparar dois valores e determinar o relacionamento entre eles. O resultado dessa avaliação é booleano ou seja, True ou False.

Equality and Relational Operators(Operadores Relacionais)

== Equal to
!= Not equal to
> Greater than
>= Greater than or equal to

O operador =(atribuição) atribui um valor a algo.

Tanto Operadores relacionais quanto condicionais retornam um resultado booleano.

Operadores lógicos:

Temos 2 tipos:
1 – De curto-circuito(Operadores Condicionais)
2 – De bit a bit(Esse não nos interessa estudar porem entram operadores que operam sobre bits em tipos de dados INTEIROS, tal como: ~,&,^ e | – NOT,AND, XOR, OR todos para bit a bit)

Curto-Circuito:

Conditional Operators

&& Conditional-AND
|| Conditional-OR
?: Ternary
! NOT(É unário porem entra nesse quesito)

Faz a Avaliação de mais de uma CONDIÇÃO, o resultado é sempre booleano(True OU FALSE), Normalmente usado com Operadores Relacionais.

Antes de tudo, CUIDADO COM A PRECEDÊNCIA de Operadores, Lembre – se que Parenteses tem Precedência 1, ou seja é FEITO ANTES DE TUDO oque esta dentro dele.

Java Operadores Relacionais e lógicos Constutores de decisão(if,switch)

AND: Ambas as condições tem que ser True para && retornar True

Expressão: Exemplos Java,Linguagem Java, Programação, Java

Explicando a Expressão:


Exemplos Java,Linguagem Java, Programação, Java Temos um Operador Relacional(Exemplos Java,Linguagem Java, Programação, Java Temos um Operador Relacional( > ) que avalia os 2 operandos( b e 1)

&& ->
Temos um Operador Condicional(&& – AND) que avalia as 2 condições:

1 –
Exemplos Java,Linguagem Java, Programação, Java
2 – Exemplos Java,Linguagem Java, Programação, Java

Suposição 01:

int a = 0;
int b = 2;


Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Passo a passo:
1 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( True os 2 Operandos(a e 1)

2 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( True os 2 Operandos(b e 1)

3 – Exemplos Java,Linguagem Java, Programação, Java= O operador Condicional avalia as 2 expressões, True && True = True

4 – Resultado da Expressão: True

Suposição 02:
int a = 1;
int b = 2;


Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Passo a passo:
1 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( False os 2 Operandos(a e 1)

2- Resultado da Expressão: False(Sendo o Operador &&, ele avalia a primeira expressão se for falsa, ele nem avalia a SEGUNDA, ja que todos as expressões precisam ser TRUE)

Suposição 03:
int a = 0;
int b = 1;


Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Passo a passo:

1 –Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( True os 2 Operandos(a e 1)

2 –Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( False os 2 Operandos(b e 1)

3 – Exemplos Java,Linguagem Java, Programação, Java O operador Condicional avalia as 2 expressões, True && False = False

4 – Resultado da Expressão: False

OR: Uma das condições precisa ser True

Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Explicando a Expressão:

Exemplos Java,Linguagem Java, Programação, Java Temos um Operador Relacional(

Exemplos Java,Linguagem Java, Programação, Java Temos um Operador Relacional( > ) que avalia os 2 operandos( b e 1)

|| -> Temos um Operador Condicional(|| – OR) que avalia as 2 condições:
1 – Exemplos Java,Linguagem Java, Programação, Java
2 – Exemplos Java,Linguagem Java, Programação, Java

Suposição 01:
int a = 1;
int b = 1;


Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Passo a passo:
1 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( False os 2 Operandos(a e 1)

2 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( False os 2 Operandos(b e 1)

3 – Exemplos Java,Linguagem Java, Programação, Java= O operador Condicional( || ) avalia as 2 expressões,
False || False = False

4 – Resultado da Expressão: False

Suposição 02:
int a = 1;
int b = 2;

Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Passo a passo:
1 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( False os 2 Operandos(a e 1)

2 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( True os 2 Operandos(b e 1)

3 – Exemplos Java,Linguagem Java, Programação, Java= O operador Condicional( || ) avalia as 2 expressões,
False || True = True

4 – Resultado da Expressão: True


Suposição 03:
int a = 0;
int b = 0;


Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Passo a passo:
1 – Exemplos Java,Linguagem Java, Programação, Java = O operador Relacional ( True os 2 Operandos(a e 1)

2- Exemplos Java,Linguagem Java, Programação, Java= O operador Condicional( || ) avalia a expressão com True pois um deles ja é True

4 – Resultado da Expressão: True

TERNÁRIO: – ?: –
Ele tem 3 partes que juntas formam uma expressão.

expressao1?expressao2:expressao3;

Caso expressao1 seja verdadeiro Então o resultado é expressao2
Caso expressao1 seja falsa Então o resultado é expressao3

Exemplo:
(20 > 2)?“É maior”:“É menor”;

NOT:
Troca o Resultado da avaliação

Exemplo:

int a = 0;

Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Analisando a Expressão:
1 –
Exemplos Java,Linguagem Java, Programação, JavaTemos um operador RELACIONAL(

2 – ! True -> O contrário de true é false, então ficamos com False

3 – Exemplos Java,Linguagem Java, Programação, Java = O operador Not avalia a Expressão como False

Suposição 02:

int a = 1;

Expressão:
Exemplos Java,Linguagem Java, Programação, Java

Analisando a Expressão:
1 –Exemplos Java,Linguagem Java, Programação, JavaTemos um operador RELACIONAL( FALSE(pois 1 é igual a 1)

2 – ! False – o contrário de False é True, portanto o resultado é True
3 –
Exemplos Java,Linguagem Java, Programação, Java – O Operador Not avalia a Expressão como True

Constutores de decisão:
***Lembre-se que temos 2 tipos de instruções, as de bloco de código e as de uma linha somente, portanto todas podem ser escritas com uma linha de instrução somente, como o exemplo o if abaixo.

O construtor if:

if(expressão_booleana){

bloco_de_código

}//fim da instrução

ou

if(expressão_booleana)
instrucao;

*expressão_booleana – É uma combinação de operadores relacionais, operadores condicionais ou uma variavel booleana ou seja qualquer instrução ou variavel que retorne um valor booleano

*bloco_de_código- São as linhas de código que são executadas caso a expressao_booleana retorne true

A expressão_booleana é avaliada:
Caso true – então o bloco_de_código é executado
Caso false – então pulamos para //fim da instrução

Exemplos Java,Linguagem Java, Programação, Java
Isso é chamado de fluxograma

Vamos a um exemplo:

Exemplos Java,Linguagem Java, Programação, Java
Dentro da expressao_booleana temos:
i 2 – Um operador Relacional( False ou seja i++ não é executado.

if Alinhado(ou seja if dentro de if):

Você pode querer alinhar construtores if, nesse caso temos um if dentro de outro:

if(expressão_booleana1){

bloco_de_código1

if(expressão_booleana2){

bloco_de_código2

}//fim do bloco_de_código2

bloco_de_código1

}//fim do bloco_de_código1

*Todos os lugares one esta escrito bloco_de_código pode ser escrito instruções.

VEJAMOS O FLUXOGRAMA:

Exemplos Java,Linguagem Java, Programação, Java

Clique na imagem para ampliar

Construtores if/else :
São blocos de código onde, se for true o resultado da expressão_booleana um bloco_de_código é executado, se for false o resultado da expressão_booleana outro bloco_de_código é executado.

if(expressao_booleana){

bloco_de_codigo1

}else{

bloco_de_codigo2

}

*expressão_booleana – É uma combinação de operadores relacionais, operadores condicionais ou uma variavel booleana ou seja qualquer instrução ou variavel que retorne um valor booleano
*bloco_de_código1 – São as linhas de código que são executadas caso a expressao_booleana retorne true
*bloco_de_código2 – São as linhas de código que são executadas caso a expressao_booleana retorne false

Exemplos Java,Linguagem Java, Programação, Java

Acorrentando Construtores if/else:
Você pode acorrentar construtores if/else obtendo assim diferentes expressões de avaliação:

if(expressao_booleana1){

bloco_de_codigo1

}else if(expressao_booleana2){

bloco_de_codigo2

}else{

bloco_de_codigo3

}

*expressão_booleana – É uma combinação de operadores relacionais, operadores condicionais ou uma variavel booleana ou seja qualquer instrução ou variavel que retorne um valor booleano
*bloco_de_código1 – São as linhas de código que são executadas caso a expressao_booleana1 retorne true
*bloco_de_código2 – São as linhas de código que são executadas caso a expressao_booleana1 retorne false e a expressao_booleana2 retorne true
*bloco_de_código3 – São as linhas de código que são executadas caso a expressao_booleana1 retorne false e a expressao_booleana2 retorne false também

Você pode também alinhar blocos if/else que forão acorrentados.

Construtor switch:
Permite que você tenha varias ramificações no seu código, isso quer dizer que você tem quantas avaliações de código quiser simplificando oque o acorrentamento de if/ else if /else faz.
Ele faz o teste apenas de igualdade , não se um valor é menor ou maior que o outro e sim somente testa o valor de igualdade uma vez, UMA VEZ.
Você pode NÃO PODE ALINHAR CONSTRUTORES switch!!! Porem pode alinhar outros construtores como if/else dentro do switch!!!

switch(variavel){
case valor_literal: codigo_de_bloco;[break]
case Outrovalor_literal: codigo_de_bloco;[break]

[default:] codigo_de_bloco;

}

*switch – É uma keyword que indica a declaração de uma instrução switch
*variavel – Você pode ter apenas aqui: byte,short, int ou enum
*case – É uma keyword que indica a declaração de um valor que você esta testando, O valor é testado com o valor de valor_literal a junção de ambos(case e valor_literal) é chamada de case label
*valor_literal – São valores literais para teste, pode ser Constant(variavel final) ou então literais(‘b’, 20) ou enum
*break – É uma keyword, é opcional, sem a instrução break quando o valor for encontrado no valor_literal todos os abaixo deles vão ser executado caso não tenha o break, ele interrompe o fluxo na hora que acha(Realmente não tem como não usar).
*default – É opcional, e caso seja testado todos os case, e não tenha sido encontrado o valor desejado, o default é executado.

***Coloque sempre o break.

Um exemplo de um bloco switch:

switch(variavel){
case valor_literal: codigo_de_bloco;break;
case Outrovalor_literal: codigo_de_bloco;

default: codigo_de_bloco;

}

Veja que usamos uma instrução com o break, e outra sem, e usamos o default também…Vemos oque acontece:

Exemplos Java,Linguagem Java, Programação, Java
Clique na imagem para ampliar

Quando usar switch?
– Para verificação de igualdade entre valores
– Para testar apenas um valor, esse do tipo int,shot,byte, char ou enum.

Você pode NÃO PODE ALINHAR CONSTRUTORES switch!!! Porem pode alinhar outros construtores como if/else dentro do switch!!!


É hora da revisão:

– Cuidado com a Precedência de Operadores, oque for Primeiro deve ser feito primeiro, exemplo Parenteses ( )
– Para avaliação de expressões booleanos usamos Operadores relacionais e condicionais
– Em blocos de decisão podemos usar instruções de um linha ou de código de bloco:
if(boolean_expression)
i++;

if(boolean_expression){
int x = 0;
i++;

}
– boolean_expression pode ser qualquer expressão que retorne uma valor booleano(Operadores Relacionais ou condicionais) ou então uma variável booleana
– O operador Condicional && – And, avalia a primeira expressão, caso seja falsa nem avalia a segunda ou teceira etc
– O operador Condicional || – OR, avalia a primeira expressão, caso seja verdadeira nem avalia a segunda ou terceira
– Podemos alinhar blocos if e if/else
– Podemos usar if/else…Para avaliar se for verdade ou falso
– Podemos acorrentar blocos if…if…else if…else
– switch é usado somente para avaliar a igualdade de um valor, com as várias opções
– EM switch só podemos usar , byte,short,int,char ou enum
– Você pode NÃO PODE ALINHAR CONSTRUTORES switch!!! Porem pode alinhar outros construtores como if/else dentro do switch!!!
– Se não usar break em switch, ele ao achar a opção não para e continua fazendo todas as instruções abaixo dele
– Somente se escreve Instruções aonde esta escrito bloco_de_codigo, vejamos o exemplo:

int i = 2;
if(i
i++;

}
int j = 3;
else{
j++;
}

Isso não é aceito!!! SOMENTE É ACEITO QUE SE ESCREVA AONDE È bloco de código!!!

Bom é isso Pessoal, Próximo post laços!!!