tipos de operando ruins para operador binário, “<=” não está funcionando, embora eu acredite que estou trabalhando em inteiros [duplicado]
Dec 27 2020
Sempre recebo um erro dizendo que não posso usar um booleano, um inteiro é necessário, mas N é um inteiro, simplesmente não consigo pensar em uma solução.
public static void main(String[] args) {
int N = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
if(1<=N<=100){
if(N % 2 != 0){
System.out.println("Weird");
} else {
if(2<=N<=6){
System.out.println("Not Weird");
} else if (6<=N<=20){
System.out.println("Weird");
} else if(N>=20){
System.out.println("Not Weird");
}
}
}
scanner.close();
}
Respostas
1 aran Dec 27 2020 at 15:21
Você não pode fazer isso diretamente em Java:
if(1<=N<=100)
O que acontece é que ele calcula primeiro (1<=N)
, o que retornaria a boolean
.
Em seguida, ele tenta compilar ( [boolean]<=100
), o que não faz sentido, mostrando a você:
The operator <= is undefined for the argument type(s) boolean, int
No seu caso:
The operator <= is undefined for the argument type(s) [1<=N]boolean, [100]int
Altere todas as condições para que sigam este formulário:
(min<=number && number<=max)
int N = scanner.nextInt();
scanner.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
if(1<=N && N<=100)
{
if(N % 2 != 0)
System.out.println("Weird");
else
{
if (2<=N && N<=6)
System.out.println("Not Weird");
else if (6<=N && N<=20)
System.out.println("Weird");
else if(N>=20)
System.out.println("Not Weird");
}
}
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino