黑马程序员技术交流社区

标题: 基础测试题里的一个问题 [打印本页]

作者: 莫忘本心    时间: 2014-7-30 01:03
标题: 基础测试题里的一个问题
我在“做从键盘接受一个数字,打印该数字表示的时间,最大单位到天”这个题目。 然后写的代码 如下,写完是没有红XX的 运行就会出错,求大神说下哪里有问题。
package com.itheima;

import com.itheima.util.Tool;//工具类 用于键盘输入

public class Demo2 {
public static final String[] TIME=new String[]{"天","时","分","秒"};
public static final int[] TIME_GET=new int[]{24*60*60,60*60,60};
        /**
         * @param args
         */
        public static void main(String[] args) {
                String str=Tool.readFrom("请输入你要打印的数字");
                System.out.println(Time(Integer.parseInt(str)));
        }
                // TODO Auto-generated method stub

       
        public static String Time(int num){
                String str="";
                for(int i=0;i<TIME.length;i++){
                        int t=num/TIME_GET[i];
                        str+=t+TIME[i];
                        num=num%TIME_GET[i];       
                }

            str+=num+TIME[TIME_GET.length];
            return str;
            
}
}
作者: fantacyleo    时间: 2014-7-30 01:10
这个小程序居然弄了个工具类。。。好吧,你的TIME_GET数组没有TIME数组长,循环的时候又以TIME数组的长度为准,导致访问TIME_GET数组时下标越界
作者: 莫忘本心    时间: 2014-7-30 01:13
fantacyleo 发表于 2014-7-30 01:10
这个小程序居然弄了个工具类。。。好吧,你的TIME_GET数组没有TIME数组长,循环的时候又以TIME数组的长度为 ...

谢了 开始大意了没注意循环应该是TIME_GET的  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2