import java.io.*;
public class first
{
public static void main(String args[])
{
 int year;
 boolean leapyear;
 String s=" ";
 System.out.print("请输入年份:")
try
{
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
s=in.readline();
}
catch(IOException e){}
if((year%4==0)&&(year%100!=0))
leapyear=true;
else if(year%400==0)
leapyear=true;
else 
leapyear=false;
if(leapyear)
System.out.println(year+"年是闰年。");
else
System.out.println(year+"年不是闰年。");
}
}用JDK运行不了

解决方案 »

  1.   

    代码
    import java.io.*;public class First 

    public static void main(String args[]) 

    int year; 
    boolean leapyear; 
    String s = ""; 

    System.out.print("请输入年份:");

    try 

    BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    s = in.readLine(); 
    }catch(IOException e){} 

    year = Integer.parseInt(s);  //将输入的字符窜转换为整数

    if((year%4 == 0)&&(year % 100 != 0)){
    leapyear = true;
    }else if(year % 400 == 0){
    leapyear = true;
    }else{
    leapyear = false;


    if(leapyear){
    System.out.println(year+"年是闰年。");
    }else{
    System.out.println(year+"年不是闰年。");
    }


    JDK下运行通过。有格式错误,还有忘记注释的那部分!
      

  2.   

    year = Integer.parseInt(s);  //将输入的字符窜转换为整数这句还是放到try catch中吧,万一输入的不是数字,就会抛异常了。
      

  3.   

    我是说LZ的代码有格式错误.另外4楼说得没错,应该将year = Integer.parseInt(s); 放到try catch里,这个方法回抛出NumberFormatException 异常.多谢四楼提醒!
      

  4.   

    eclipse 会用不? 把你的代码拷贝到Eclipse 环境下运行,如果有错误 Eclipse会帮你把错误找出来的
      

  5.   

    弱弱的问一下,一楼的是不是把类名写错了,首字母要大写!
    然后就是year定义之后没有给它赋值,像二楼那样就可以解决,不过要将转换的那一行放到try/catch块中
    防止出现空指针异常(当用户输入的时候直接按回车就会出现)
      

  6.   

    year = Integer.parseInt(s);  //将输入的字符窜转换为整数 
     有错误,并且在异常语句块中,也没有捕捉异常信息,就算有异常信息,你也不会看到,起码你应该在Catch中写个 e.printStackTrace();