同学,,这是一个基本的异常,表示为你的表达式中,有一个除数为零了!
关键在于!!final int DAY=60^60^24; final int HOUR=60^60;这两句,为什么要这样写!"^ "这是一个位运算符,表示异或!60^60^24结果为24!60^60结果为零!所以当程序执行到
if(time%DAY%HOUR>=60){
int min=time%DAY%HOUR/60;
int sec=time%DAY%HOUR%60;
TIME=TIME+min+"分"+sec+"秒";}
这段代码时就发生了错误!你可以打印出DAY,和HOUR的值看一下,一个为24.一个为0
正确的写法应该是 final int DAY=60*60*24;
final int HOUR=60*60;
这才是你想要的值!!最后,把代码全部写完应该是这样!
public static void main(String[] args) {
// TODO Auto-generated method stub
final int DAY=60*60*24;
final int HOUR=60*60;
Scanner reader=new Scanner(System.in);
int time=reader.nextInt();
System.out.println("键盘输入的时间为" + time + "秒"+HOUR);
String TIME = "";
if(time>=DAY){
int day=time/DAY;
TIME=day+"天";}
if(time%DAY>=HOUR){
int hour=(time%DAY)/HOUR;
TIME=TIME+hour+"时";}
if(time%DAY%HOUR>=60){
int min=time%DAY%HOUR/60;
int sec=time%DAY%HOUR%60;
TIME=TIME+min+"分"+sec+"秒";}
System.out.println( TIME);
}
都 不用写throws来抛异常的,还有,,运行时的异常不是这样处理的!! |