Vou precisar fazer uma tabela verdade, e uma parte do processo necessita da negação do valor do elemento de um vetor – só irei trabalhar com “zeros” e “ums” – , como a negação de 1 para que eu possa imprimir 0, posteriormente. No entanto, é apresentado um erro de compilação que aponta o operador unário “!” como um erro de sintaxe. Alguma sugestão de alteração?
Desde já, agradeço.
public class Teste {
public static void main(String[ ] args) {
int vet [ ] = {1, 0, 1, 0};
vet[0] = 1;
System.out.print(!(vet[0]));
}
}
@joaostm tu tens que ter em mente que os operadores lógicos só podem ‘trabalhar’ com expressões ou operações lógicas. Com efeito, só se pode negar um valor lógico, ou seja, true ou false (no Java). No entanto, o seu vetor vet é um vetor de inteiros e não de valores booleanos. Para resolver isso, tens, conforme indicou o @rodriguesabner, que usar uma estrutura de seleção.
Exemplo:
public class Teste {
public static void main(String[ ] args){
int[] vet = {1, 0, 1, 0};
for(short i = 0; i < vet.length; i++){
if(vet[i] == 0)
vet[i] = 1;
else
vet[i] = 0;
System.out.print(" " + vet[i]);
}
}
}