0

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

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


}
4

3 回答 3

4

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

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

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

于 2013-09-30T22:26:08.443 回答
0
(year/4) && !(year/100)

这些整数运算都不等同于布尔值。您可能想尝试以下方法:

if(year%4 == 0)

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

于 2013-09-30T22:26:51.703 回答
0

试试这个而不是除法“/”使用模式“%”。

if ((year % 4 == 0) && (year % 100 != 0)) {
于 2013-09-30T22:34:04.613 回答