Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

borgir

Operador boolean

Recommended Posts

Este pedaço de código, do livro Teach Yourself Java 6 in 21 Days, está a fazer-me alguma confusão ali no operador !

A wikipedia faz referência a este operador como sendo um operador unário. Daí a minha questão:

Faz sentido comparar duas expressões desta forma? Se sim qual o seu significado?

Obrigado.

 

 

class Logger {

private String format;

 

public String getFormat() {

return this.format;

}

 

public void setFormat(String format) {

if ( (format.equals(“common”)) ! (format.equals(“combined”)) ) {

this.format = format;

}

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente não faz muito sentido, acho que o operador utilizado no livro deveria ser algo como | e não !, tipo:

 

if ( (format.equals(“common”)) | (format.equals(“combined”)) ) {

 

Que seria equivalente a um OR.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia a todos.

 

Quando voce compara duas expressões testando a equivalência entre elas, em qualquer linguagem, não só o JAVA, voce deve comparar com os operadores relacionais e não booleanos, isto é, que no seu caso é o exemplo abaixo:

 

// Testando equivalência em Java
   
  if (common  ==  combined) // Se a variável common for igual a variável combined

  if (common != combined) // Se a variável common for diferente a variável combined

Entretanto, devo salientar que para o seu caso, ambas as variáveis estão sendo passadas pelo método equals, onde o qual retorna um valor booleano caso o conteúdo da expressão seja verdadeiro, então nestes casos, voce deve utilizar os operador OR "||" e não "|" como disse o nosso amigo, AND "&&" ou o NOT "!".

 

Só que para a comparação negativa, o operador NOT "!" tem que vir antes da expressão, assim:

 

if ( ! format.equals(“common”) ||  ! format.equals(“combined”) ) 

   // Caso a primeira expressão seja false ou segunda seja false também

Repare que o operador not vem antes de cada expressão, se remover estes operadores, ele testa se a respectiva expressão é verdadeira, com o operador "!" ele teste se é falsa.

 

Um abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Titulo editado:

 

De JAVA para Operador boolean

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.