बाइनरी ऑपरेटर के लिए बुरे ऑपरेंड प्रकार, "<=" काम नहीं कर रहा है, हालांकि मुझे लगता है कि मैं पूर्णांक [डुप्लिकेट] में काम कर रहा हूं

Dec 27 2020

मुझे यह कहते हुए एक त्रुटि हो रही है कि मैं बूलियन का उपयोग नहीं कर सकता, पूर्णांक की आवश्यकता है, लेकिन एन एक पूर्णांक है, मैं बस एक समाधान के बारे में नहीं सोच सकता।

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 Dec 27 2020 at 15:21

आप सीधे जावा में ऐसा नहीं कर सकते:

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");
         }
     }