程序我试了,问题应该出在输入方法,用数组参数输入就没问题,具体怎么回事我也不太清楚
public class leapyear
{
public static void main(String[] args)
{
    int i=Integer.parseInt(args[0]);
    if((((i%4==0)&&(i%100!=0))||(i%400==0)))
      System.out.println(i+"年是闰年!");
    else
      System.out.println(i+"年不是闰年!");
    }
  }
然后在运行时输入参数就行了

解决方案 »

  1.   

    楼上的方法我在jdk1.4里面运行报错
      

  2.   

    关注ing
    上学时的经典例子就是这个判断润年的,到现在我也没搞明白,想学学
      

  3.   

    报错?!java leapyear 2000这样会报错?
      

  4.   

    import java.io.*;
    import java.util.*;
    public class leapyear{
      public static void main(String args[]){
       int i=0;
       String str = null;
       try
       {
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));      str = br.readLine();
          i = Integer.parseInt(str);    }
        
        catch(IOException e){}
        
         if(((i%4==0)&&(i%100!=0))||(i%400==0))
          System.out.println(i+"年是闰年!");
        else
          System.out.println(i+"年不是闰年!");
    }
    }
      

  5.   

    上面的我在jdk1。4调试通过,楼主不妨一试
      

  6.   

    System.in.read()返回的是你输入的第一个字节的ascii码的int形式。也就是说,如果你输入了2000的话,System.in.read()读到的是第一个字符“2”,其ascii码的int值为50,于是你的i得到的值就是50,然后判断得出的结果就是“50年不是闰年”。而使用yongjoon(在痛苦中成长)的方法,则是通过简单类型封装得到的把“2000”整个字符串转化成的int值,在这里i的值就是2000了。明白了?
      

  7.   

    yongjoon(在痛苦中成长):
    你的程序好像有错啊, 我运行了也不行啊,
      

  8.   

    yongjoon(在痛苦中成长) 写的程序没有错误啊,我已经测试过了
    不过这里需要注意的是该文件必须保存为LeapYear.java
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    public class LeapYear
    {
    public static void main(String[] args)
    {
        int i=Integer.parseInt(args[0]);
        if((((i%4==0)&&(i%100!=0))||(i%400==0)))
          System.out.println(i+"年是闰年!");
        else
          System.out.println(i+"年不是闰年!");
        }
     }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    下面是我运行的结果
    D:\ProgramJava\csdn>javac LeapYear.javaD:\ProgramJava\csdn>java LeapYear 50
    50年不是闰年!D:\ProgramJava\csdn>java LeapYear 60
    60年是闰年!D:\ProgramJava\csdn>java LeapYear 2004
    2004年是闰年!D:\ProgramJava\csdn>java LeapYear 2000
    2000年是闰年!D:\ProgramJava\csdn>java LeapYear 2001
    2001年不是闰年!
      

  9.   

    另外 fireredfox(火狐狸) 说的也很有道理
    希望楼主好好理解一下System.out.read()语句的用法
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    还有cyblueboy83(随风飞翔)写的程序也完全正确而且很有独特比较符合楼主的口味
    估计也是楼主想要的效果吧
    下面我给出其代码和运行效果(我改了其中类的名字,运行和保存时请注意一致)
    import java.io.*;
    import java.util.*;public class LeapYear1
    {
    public static void main(String args[])
    {
    int i=0;
    String str = null;
    try
    {
     BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
     str = br.readLine();
     i = Integer.parseInt(str);
     }
    catch(IOException e)
    {}   
    if(((i%4==0)&&(i%100!=0))||(i%400==0))
      System.out.println(i+"年是闰年!");
    else
      System.out.println(i+"年不是闰年!");
    }
    }
    运行结果如下
    D:\ProgramJava\csdn>javac LeapYear1.javaD:\ProgramJava\csdn>java LeapYear1
    50
    50年不是闰年!D:\ProgramJava\csdn>java LeapYear1
    2000
    2000年是闰年!D:\ProgramJava\csdn>java LeapYear1
    2002
    2002年不是闰年!
      

  10.   

    Integer.parseInt(str);
    这个我知道
    把字符转为数字型?INT之类
    数语说的不好我说的意思对不要不你输入的JDK永远认为是字符是吧
      

  11.   

    我也是JAVA初学者,我都有很多问题不明白,希望大家交流一下~~我QQ:377501964
      

  12.   

    好像是因为楼主不明白System.in
    是一种流 这种输入在JAVA里面是要用
    StreamReader类来捕捉的
    而不像C++的iostream那样已经写好的
    cin
    JAVA的流现在好像是我见过的平台中
    实现的种类最多的一种,由时间好好看看
    《Java2 编程指南(SDK 1.4版)》
    电子工业出版社的
    的第八章到第12章
      

  13.   

    谢谢,我会好好的去看那本书的, 
    我知道我对那个system.in流一点也不懂啊, 我也问了我们的专业老师可是他也不能说清楚啊, 还好有各位的帮助啊,谢谢
      

  14.   

    我觉得我对JAVA的感觉还不错啊, 我决定朝着这个方向好好发展一下,同时希望各位能给我多多的帮助与支持啊谢谢!!!