日期:2014-05-20  浏览次数:20767 次

初学Java小程序
Java code
public class Test04   //判断1900到2010之间的闰年
{
    public static void main(String[] args)
    {
        System.out.println("闰年有:");
        for(int i= 1900;i<=2010;i++)
        {
            System.out.print(Year(i) + ",");
        }
    }

 static int Year(int n)   //判断闰年的函数
    {
        //int n;
        if((n % 4 == 0) && (n % 100 != 0))
        {
            return n;
        }
        if(n % 400 == 0)
        {
            return n;
        }
        //return 0;  //如果加上这句,编译可以通过,但结果不对;如果不加上这句编译不过 
    }
}


------解决方案--------------------
应该这样。先加上return 0。再
for(int i= 1900;i<=2010;i++)
{
? if(Year(i)!=0)
? System.out.print(Year(i) + ",");
}
------解决方案--------------------
Java code

public class Test04   //判断1900到2010之间的闰年
{
    public static void main(String[] args)
    {
        System.out.println("闰年有:");
        for(int i= 1900;i<=2010;i++)
        {
            int year = Year(i);
            if(year==i)
                System.out.print(year + ",");
        }
    }

 static int Year(int n)   //判断闰年的函数
    {
        //int n;
        if((n % 4 == 0) && (n % 100 != 0))
        {
            return n;
        }
        if(n % 400 == 0)
        {
            return n;
        }
        return 0;   
    }
}

------解决方案--------------------
因为假设如果程序的两个if语句都不执行的话,那就没有返回值了,所以必须要有返回值。虽然你的两个if语句已经肯定会被执行一个,但是程序并不知道这点。你可以用if else 语句,这样保证每个子部分都会被执行,从而你的最后一个return不会有了
------解决方案--------------------
返回什么int数值都可以,这是因为这个方法要有一个返回值,所以你的程序不管走那条路,只要都能给个返回值为int的值,就能编译成功。不算什么大问题吧,多理解理解就行了。
------解决方案--------------------
package March02;

//这是我根据你的程序修改了下,你自己看看,理解
public class Test04 //判断1900到2010之间的闰年
{
? public static void main(String[] args)
? {
? System.out.println("闰年有:");
? for(int i= 1900;i<=2010;i++)
? {
? if(Year(i)){ //这里修改了,是返回值为boolean型,这样判断可以排除非为0年的数值
? System.out.print(i+ ",");
? }
? }
? }

?static boolean Year(int n) //这里我修改了返回类型
? {
? //int n;
? if((n % 4 == 0) && (n % 100 != 0))
? {
? return true;
? }
? if(n % 400 == 0)
? {
? return true;
? }
? ?
? return false;
? }
}


------解决方案--------------------
static int Year(int n) //判断闰年的函数
? {
? //int n;
? if((n % 4 == 0) && (n % 100 != 0))
? {
? return n;
? }else if(n % 400 == 0)
? {
? return n;
? }else{
return 0;
}
? ?
? }
这样就行了
------解决方案--------------------
Java code
if(){

}else if(){

}else{

}

------解决方案--------------------
//return 0; //如果加上这句,编译可以通过,但结果不对;如果不加上这句编译不过?

LZ的YEAR方法都是INT类型的当然要返回值咯
润年的方法用十九楼的就成啊
或者用我这个,嘿嘿,你自己输入年份判断

//判断是否为闰年
import java.util.*;
public class LeapYear
{
/**
* @param args
*/
public static void main(String[] args)?
{
// TODO Auto-generated method stub
Scanner y=new Scanner(System.in);//通过键盘输入年份
System.out.printf("请输入年份:");
int yearIn=y.nextInt();
boolean leapIn=yearIn%400==0||yearIn%100!=0&&yearIn%4==0;//是闰年的条件
System.out.println(yearIn+" is leap year? "+leapIn);
/*int year=2012;