二項演算子のオペランドタイプが正しくありません。整数で作業していると思いますが、「<=」が機能しません[重複]
ブール値を使用できない、整数が必要である、というエラーが繰り返し表示されますが、Nは整数であり、解決策が思いつかないだけです。
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();
}
回答
1 aran
Javaでこれを直接行うことはできません。
if(1<=N<=100)
何が起こるかというと(1<=N)
、最初にを計算し、それはを返しますboolean
。
次に、([boolean]<=100
)をコンパイルしようとしますが、これは意味がなく、次のように表示されます。
The operator <= is undefined for the argument type(s) boolean, int
あなたの場合:
The operator <= is undefined for the argument type(s) [1<=N]boolean, [100]int
次の形式に従うように、すべての条件を変更します。
(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");
}
}