borgir 0 Denunciar post Postado Junho 14, 2008 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
Prog 183 Denunciar post Postado Junho 15, 2008 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
Discorpio 1 Denunciar post Postado Junho 15, 2008 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
borgir 0 Denunciar post Postado Junho 15, 2008 Muito obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
sublyer 0 Denunciar post Postado Julho 4, 2008 Titulo editado: De JAVA para Operador boolean Compartilhar este post Link para o post Compartilhar em outros sites