猿问

布尔条件总是评估为真

我正在为一个介绍 Java 类的家庭作业项目工作,其中我的任务是创建一个类和方法来测试输入年份是否为闰年。我已经看到很多人在一个程序中执行此操作的示例,但是我们需要构建该类,然后运行我教授的 Tester 文件。我终于可以毫无错误地编译所有内容,但是每次运行该文件时,我都会被告知这一年是闰年。我尝试了很多不同的东西,但我不明白为什么布尔条件 at 总是评估为真(或者我做错了什么)。


我的代码如下:


public class Year

{

   // declare variable

    private int y;

    private String year;


    // declare constructor

    public Year(String theYear, int year_input)

    {

        y=year_input;

        theYear=year;

    }    


    // ensure y has a value

    public Year(int y)

    {

        y=0;

    } 


    // test if y is a leap year

    public boolean isLeapYear()

    {

             if (y%4==0 && (y/100!=0 || y%400==0))

             { 

                 return true;

             } 

                return false;


    }

我教授的代码在这里:


import java.util.Scanner;


public class LeapYearTester{


public static void main(String[] args){


    Scanner input = new Scanner(System.in);

    System.out.println("Please enter a year");

    int year_input = input.nextInt();


    // now make a Year object


    Year theYear = new Year(year_input);


    // now check to see if it's a leap year


    if (theYear.isLeapYear())

        System.out.println("That's a leap year!");

    else

        System.out.println("That's not a leap year!");

    }

}


侃侃无极
浏览 122回答 3
3回答

白猪掌柜的

问题出在您的构造函数中。您总是将 year 初始化为 0 而不是您从输入中得到的。还要学习调试:)
随时随地看视频慕课网APP

相关分类

Java
我要回答