Java - Operadores básicos
Java fornece um rico conjunto de operadores para manipular variáveis. Podemos dividir todos os operadores Java nos seguintes grupos -
- Operadores aritméticos
- Operadores Relacionais
- Operadores bit a bit
- Operadores lógicos
- Operadores de atribuição
- Operadores diversos
Os operadores aritméticos
Operadores aritméticos são usados em expressões matemáticas da mesma forma que são usados em álgebra. A tabela a seguir lista os operadores aritméticos -
Assuma que a variável inteira A contém 10 e a variável B contém 20, então -
Operador | Descrição | Exemplo |
---|---|---|
+ (Adição) | Adiciona valores em qualquer lado do operador. | A + B dará 30 |
- (Subtração) | Subtrai o operando direito do operando esquerdo. | A - B dará -10 |
* (Multiplicação) | Multiplica os valores em ambos os lados do operador. | A * B dará 200 |
/ (Divisão) | Divide o operando à esquerda pelo operando à direita. | B / A dará 2 |
% (Módulo) | Divide o operando esquerdo pelo operando direito e retorna o resto. | B% A dará 0 |
++ (incremento) | Aumenta o valor do operando em 1. | B ++ dá 21 |
- (diminuir) | Diminui o valor do operando em 1. | B-- dá 19 |
Os operadores relacionais
Existem os seguintes operadores relacionais suportados pela linguagem Java.
Suponha que a variável A tenha 10 e a variável B tenha 20, então -
Operador | Descrição | Exemplo |
---|---|---|
== (igual a) | Verifica se os valores dos dois operandos são iguais ou não, se sim a condição torna-se verdadeira. | (A == B) não é verdade. |
! = (diferente de) | Verifica se os valores de dois operandos são iguais ou não; se os valores não são iguais, a condição se torna verdadeira. | (A! = B) é verdade. |
> (maior que) | Verifica se o valor do operando esquerdo é maior que o valor do operando direito, se sim, a condição torna-se verdadeira. | (A> B) não é verdade. |
<(menos que) | Verifica se o valor do operando esquerdo é menor que o valor do operando direito; se sim, a condição torna-se verdadeira. | (A <B) é verdade. |
> = (maior ou igual a) | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito, se sim a condição torna-se verdadeira. | (A> = B) não é verdade. |
<= (menor ou igual a) | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito, se sim a condição torna-se verdadeira. | (A <= B) é verdadeiro. |
Os operadores bit a bit
Java define vários operadores bit a bit, que podem ser aplicados aos tipos inteiros, long, int, short, char e byte.
O operador bit a bit funciona em bits e executa a operação bit a bit. Suponha que a = 60 e b = 13; agora em formato binário serão os seguintes -
a = 0011 1100
b = 0000 1101
-----------------
a & b = 0000 1100
a | b = 0011 1101
a ^ b = 0011 0001
~ a = 1100 0011
A tabela a seguir lista os operadores bit a bit -
Suponha que a variável inteira A tenha 60 e a variável B 13, então -
Operador | Descrição | Exemplo |
---|---|---|
& (bit a bit e) | O operador binário AND copia um bit para o resultado se ele existir em ambos os operandos. | (A e B) dará 12, que é 0000 1100 |
| (bit a bit ou) | O operador binário OR copia um bit se ele existir em qualquer operando. | (A | B) dará 61, que é 0011 1101 |
^ (XOR bit a bit) | O operador binário XOR copia o bit se estiver definido em um operando, mas não em ambos. | (A ^ B) dará 49, que é 0011 0001 |
~ (elogio bit a bit) | O operador de complemento binários é unário e tem o efeito de 'inverter' bits. | (~ A) dará -61 que é 1100 0011 na forma de complemento de 2 devido a um número binário com sinal. |
<< (deslocamento para a esquerda) | Operador binário de deslocamento à esquerda. O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. | Um << 2 dará 240, que é 1111 0000 |
>> (deslocamento para a direita) | Operador binário de deslocamento à direita. O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita. | Um >> 2 dará 15, que é 1111 |
>>> (preenchimento zero deslocamento à direita) | Desloque o operador de preenchimento zero para a direita. O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita e os valores deslocados são preenchidos com zeros. | Um >>> 2 dará 15, que é 0000 1111 |
Os operadores lógicos
A tabela a seguir lista os operadores lógicos -
Suponha que as variáveis booleanas A sejam verdadeiras e a variável B sejam falsas, então -
Operador | Descrição | Exemplo |
---|---|---|
&& (lógico e) | Operador lógico chamado AND. Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. | (A && B) é falso |
|| (lógico ou) | Operador lógico ou chamado. Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. | (A || B) é verdade |
! (lógico não) | Operador lógico chamado NOT. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT tornará falsa. | ! (A && B) é verdade |
Os Operadores de Atribuição
A seguir estão os operadores de atribuição suportados pela linguagem Java -
Operador | Descrição | Exemplo |
---|---|---|
= | Operador de atribuição simples. Atribui valores de operandos do lado direito para operando do lado esquerdo. | C = A + B irá atribuir o valor de A + B em C |
+ = | Adicionar operador de atribuição AND. Ele adiciona o operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo. | C + = A é equivalente a C = C + A |
- = | Subtraia o operador de atribuição AND. Ele subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo. | C - = A é equivalente a C = C - A |
* = | Operador de atribuição Multiply AND. Ele multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo. | C * = A é equivalente a C = C * A |
/ = | Operador de divisão AND atribuição. Ele divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo. | C / = A é equivalente a C = C / A |
% = | Módulo E operador de atribuição. Leva o módulo usando dois operandos e atribui o resultado ao operando esquerdo. | C% = A é equivalente a C = C% A |
<< = | Deslocamento para a esquerda E operador de atribuição. | C << = 2 é igual a C = C << 2 |
>> = | Deslocamento à direita E operador de atribuição. | C >> = 2 é igual a C = C >> 2 |
& = | Operador de atribuição AND bit a bit. | C & = 2 é igual a C = C & 2 |
^ = | OR exclusivo bit a bit e operador de atribuição. | C ^ = 2 é igual a C = C ^ 2 |
| = | OR inclusivo bit a bit e operador de atribuição. | C | = 2 é igual a C = C | 2 |
Operadores diversos
Existem alguns outros operadores suportados pela linguagem Java.
Operador condicional (?:)
O operador condicional também é conhecido como o ternary operator. Este operador consiste em três operandos e é usado para avaliar expressões booleanas. O objetivo do operador é decidir qual valor deve ser atribuído à variável. O operador é escrito como -
variable x = (expression) ? value if true : value if false
A seguir está um exemplo -
Example
public class Test {
public static void main(String args[]) {
int a, b;
a = 10;
b = (a == 1) ? 20: 30;
System.out.println( "Value of b is : " + b );
b = (a == 10) ? 20: 30;
System.out.println( "Value of b is : " + b );
}
}
Isso produzirá o seguinte resultado -
Output
Value of b is : 30
Value of b is : 20
instanceof Operator
Este operador é usado apenas para variáveis de referência de objeto. O operador verifica se o objeto é de um tipo específico (tipo de classe ou tipo de interface). operador instanceof é escrito como -
( Object reference variable ) instanceof (class/interface type)
Se o objeto referido pela variável no lado esquerdo do operador passar na verificação IS-A para o tipo de classe / interface no lado direito, o resultado será verdadeiro. A seguir está um exemplo -
Example
public class Test {
public static void main(String args[]) {
String name = "James";
// following will return true since name is type of String
boolean result = name instanceof String;
System.out.println( result );
}
}
Isso produzirá o seguinte resultado -
Output
true
Este operador ainda retornará verdadeiro, se o objeto que está sendo comparado for a atribuição compatível com o tipo à direita. A seguir está mais um exemplo -
Example
class Vehicle {}
public class Car extends Vehicle {
public static void main(String args[]) {
Vehicle a = new Car();
boolean result = a instanceof Car;
System.out.println( result );
}
}
Isso produzirá o seguinte resultado -
Output
true
Precedência de operadores Java
A precedência do operador determina o agrupamento de termos em uma expressão. Isso afeta como uma expressão é avaliada. Certos operadores têm precedência mais alta do que outros; por exemplo, o operador de multiplicação tem precedência mais alta do que o operador de adição -
Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência mais alta do que +, portanto, primeiro é multiplicado por 3 * 2 e, em seguida, é adicionado a 7.
Aqui, os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior. Em uma expressão, os operadores de precedência mais altos serão avaliados primeiro.
Categoria | Operador | Associatividade |
---|---|---|
Postfix | expressão ++ expressão-- | Da esquerda para direita |
Unário | ++ expressão –- expressão + expressão –expressão ~! | Direita para esquerda |
Multiplicativo | * /% | Da esquerda para direita |
Aditivo | + - | Da esquerda para direita |
Mudança | << >> >>> | Da esquerda para direita |
Relacional | <> <=> = instância | Da esquerda para direita |
Igualdade | ==! = | Da esquerda para direita |
E bit a bit | E | Da esquerda para direita |
XOR bit a bit | ^ | Da esquerda para direita |
OR bit a bit | | | Da esquerda para direita |
E lógico | && | Da esquerda para direita |
OR lógico | || | Da esquerda para direita |
Condicional | ?: | Direita para esquerda |
Tarefa | = + = - = * = / =% = ^ = | = << = >> = >>> = | Direita para esquerda |
O que vem a seguir?
O próximo capítulo explicará sobre o controle de loop na programação Java. O capítulo descreverá vários tipos de loops e como esses loops podem ser usados no desenvolvimento de programas Java e para quais propósitos eles estão sendo usados.