对于args,运算符未定义

时间:2013-09-30 22:21:30

标签: java

当我在java中使用任何布尔运算符时,我不断收到错误消息the operator type is undefined for the args。我是否必须导入一个布尔类?

import java.util.Scanner; //imports Scanner class 

public class LeapYear {
    public static void main (String[] args) {

        //create Scanner object
        Scanner input  = new Scanner(System.in);

        //declare variables
        int year;

        //get input
        System.out.println("Enter year: ");
        year = input.nextInt();

        //create if statement   
            if ((year/4) && !(year/100)){
                System.out.println("Leap Year");
            }
            else{
                System.out.println("Not a Leap Year");
            }
    }


}

3 个答案:

答案 0 :(得分:4)

与C / C ++不同,您无法将int值视为booleans。您必须明确地将它们与零进行比较才能创建boolean结果。此外,对于闰年计算,您希望在划分时比较余数,因此我们%代替/

if ((year % 4 == 0) && (year % 100 != 0)) {

不要忘记可以被400整除的年份,这是闰年。我会把这个改变留给你。

答案 1 :(得分:0)

(year/4) && !(year/100)

这些整数运算都不等于布尔值。你可能想尝试类似的东西:

if(year%4 == 0)

或类似的东西。我知道那里的闰年逻辑并不完美,但关键是你需要进行某种比较(==)。

答案 2 :(得分:0)

尝试此而不是分区“/”使用模式“%”。

if ((year % 4 == 0) && (year % 100 != 0)) {